Как отформатировать книгу Excel, созданную динамическими отчетами

Я хочу отформатировать сгенерированный файл excel (созданный с использованием динамических отчетов) с помощью apache poi (версия 3.7). Я столкнулся с двумя проблемами при форматировании Excel.

  1. Числа считаются текстом, и я получаю предупреждающие сообщения в Excel (число хранится в виде текста).
  2. Отступ слева отсутствует в Excel, хотя он присутствует в PDF и HTML.

Как я могу добиться этих двух вещей, используя apache poi в отчете excel?

Любая помощь будет оценена.

Заранее спасибо!

С уважением

Шиха Сингхал


person Shikha Singhal    schedule 07.04.2015    source источник
comment
Какой код вы используете для записи чисел в ячейку?   -  person Gagravarr    schedule 07.04.2015


Ответы (1)


Проблема 1: число сохранено как текстовое предупреждение:

Установите тип ячейки как числовой:

Cell cell = sheet.getRow(0).createCell(2);      
cell.setCellType(Cell.CELL_TYPE_NUMERIC);
cell.setCellValue(12345);

Проблема 2: отступ слева для ячейки

XSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(CellStyle.ALIGN_LEFT);
cell.setCellStyle(style);
person LittlePanda    schedule 11.04.2015
comment
Привет, спасибо за ваш ответ. Я использую то же самое для форматирования типа ячейки в числовой. Но в случае, если у меня есть отрицательное число, которое я представляю красным цветом в фигурных скобках, например (0,0004). В данном случае это не форматирование. Как отформатировать эту ячейку как числовую и представить число таким же, как оно было (я имею в виду красным цветом и в фигурных скобках). Любая помощь, пожалуйста.. - person Shikha Singhal; 07.05.2015
comment
Вам нужно будет изменить код 2 и установить цвет текста. См. thinktibits.blogspot .in/2012/12/ - person LittlePanda; 07.05.2015
comment
@LittlePanda Привет, я не использую Apache POI. Я создаю отчет с использованием динамических отчетов, и у меня тоже есть такая же проблема в Excel, число хранится как текст. Из-за этого я не могу выполнять какие-либо операции, как я могу это исправить? - person Anoop LL; 29.06.2016