1

在尝试使用 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() 可以执行类似的任务 - 但是假设我想打印工作表的名称和工作表中单个单元格的内容)。

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

4

1 回答 1

1

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

当您成功将 JExcelAPI 重定向到日志框架时,您可以配置转储哪些消息(以及转储位置)。

于 2011-10-22T16:28:50.803 回答