为什么jExcelAPI会在stderr中转储警告以及如何停止此行为?

时间:2011-10-22 16:15:30

标签: java logging stderr jexcelapi

在尝试使用jExcelAPI读取xls文件时,我发现该库在stderr中转储了大量信息,有时这些信息不相关。例如,此代码段会导致许多“警告”被转储到stderr流上:

    Workbook workbook = Workbook.getWorkbook(new File(flname));


    //For each sheet in the workbook
    for (int currentSheet = 0; currentSheet < workbook.getNumberOfSheets(); currentSheet++)
    {
        Sheet sheet = workbook.getSheet(currentSheet);
        System.out.println("Currently processing " + sheet.getName());
    }

警告如下:

Currently processing frst sheet
Warning:  Cell C33680 already contains data
Warning:  Cell D33680 already contains data
Warning:  Cell E33680 already contains data
Warning:  Cell F33680 already contains data
Warning:  Cell B33680 already contains data
Currently processing Lst Sheet

如何避免库转储所有这些不需要的数据?另外我不明白为什么代码甚至会查看工作表的所有单元格,当我要求它完成时,列出工作表的名称(我知道Workbook.getSheetNames()可以执行类似的任务 - 但是说我想在表格中打印单张纸的名称和单个单元格的内容。

我是否错误地使用了图书馆?

1 个答案:

答案 0 :(得分:1)

我从未使用过此库,但是快速查看Logger.initializeLogger()它看起来默认情况下会尝试使用Log4J进行日志记录。你的CLASSPATH上有Log4J吗?您也可以使用SLF4J bridge

成功将JExcelAPI重定向到日志记录框架后,您可以配置转储哪些邮件(以及在哪里)。