Почему jExcelAPI выводит предупреждения в stderr и как остановить это поведение? - PullRequest
1 голос
/ 22 октября 2011

При попытке прочитать файл xls с помощью jExcelAPI я обнаружил, что библиотека выводит много информации в 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 Ответ

1 голос
/ 22 октября 2011

Я никогда не использовал эту библиотеку, однако быстрый взгляд на Logger.initializeLogger () похоже, что по умолчанию он пытается войти с использованием Log4J. У вас есть Log4J на вашем CLASSPATH? Вы также можете использовать SLF4J bridge .

Когда вы успешно перенаправляете JExcelAPI в каркас журналирования, вы можете настроить, какие сообщения сбрасываются (и куда).

...