13. POI
Пакет
Jakarta POI предназначен для работы с документами Microsoft Office.
Пока что более-менее работающей там является только поддержка файлов MS Excel (xls).
Особой сложности в работе с русским языком нет, но надо учитывать нюанс, что для работы с ячекой используется класс org.apache.poi.hssf.usermodel.Cell, у которого есть метод setEncoding(short encoding), однако вместо привычных "Cp1255" и "Cp866", необходимо исользовать константы ENCODING_COMPRESSED_UNICODE (0) и ENCODING_UTF_16 (1).
По умолчанию включен первый режим, а для нормальной работы с русским языком необходимо использовать ENCODING_UTF_16.
Причем что самое важное, эту установку необходимо выполнять для каждой, создаваемой ячейки.
Пример кода:
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet("Sheet1");
HSSFRow row=sheet.createRow((short)0);
for( int i = 0; i < 10; i++ )
{
HSSFCell cell=row.createCell((short)i);
cell.setEncoding((short)cell.ENCODING_UTF_16);
cell.setCellValue("Тест русского языка");
}
Создать лист с названием содержащим русские символы, к сожалению, не удаётся.
Данное описание прислал
Вячеслав Яковенко, за что ему отдельное спасибо.