2011-10-22 39 views
1

當試圖使用jExcelAPI讀取xls文件時,我發現該庫在stderr中轉儲了大量信息,有時這些信息不相關。例如,該代碼段會導致大量的「警告」的stderr上流傾倒:爲什麼jExcelAPI在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

我從來沒有使用這個庫,但快速看看Logger.initializeLogger()它看起來像默認情況下它會嘗試使用Log4J進行日誌記錄。你的CLASSPATH上有Log4J嗎?您也可以使用SLF4J bridge

當您成功將JExcelAPI重定向到日誌框架中時,您可以配置轉儲哪些消息(以及在哪裏)。

+0

謝謝指出。似乎默認情況下,所有的消息都是定向到標準流 - 但是如果庫是用記錄器選項重建的,那麼我們就可以使用它。但仍不太清楚爲什麼該功能甚至可以查看所有這些數據! –

相關問題