Ответ 1
Я использовал JXL (теперь "JExcel" ) и Apache POI. Сначала я использовал JXL, но теперь я использую POI Apache.
Во-первых, вот что означает, что оба API имеют одинаковую функциональность:
- Оба являются бесплатными
- Укладка элементов: выравнивание, фоны (цвета и рисунки), границы (типы и цвета), поддержка шрифтов (имена шрифтов, цвета, размер, жирный шрифт, курсив, вычеркнуть, подчеркнуть)
- Формулы
- Гиперссылки
- Области с объединенными ячейками
- Размер строк и столбцов
- Форматирование данных: числа и даты
- Обтекание текстом в ячейках
- Стоп-кадры
- Поддержка верхнего колонтитула
- Чтение/запись существующих и новых таблиц
- Обе попытки сохранить существующие объекты в электронных таблицах, которые они читают, остаются в целости, насколько это возможно.
Однако есть много отличий:
- Возможно, самое существенное отличие заключается в том, что Java JXL не поддерживает формат Excel. "xlsx" Excel 2007+; он поддерживает только старый BIFF (двоичный) формат .xls. Apache POI поддерживает как общую схему.
- Кроме того, часть Java JXL API была в последний раз обновлена в 2009 году (3 года, 4 месяца назад, когда я пишу это), хотя похоже, что существует С# API. Apache POI активно поддерживается.
- JXL не поддерживает Условное форматирование, Apache POI делает, хотя это не так уж важно, потому что вы можете условно форматировать ячейки со своим собственным кодом.
- JXL не поддерживает форматирование форматирования текста, т.е. другое форматирование в текстовой строке; Apache POI поддерживает его.
- JXL поддерживает только определенные поворота текста: горизонтальный/вертикальный, +/- 45 градусов и сложный; Apache POI поддерживает любое целое число градусов плюс сложены.
- JXL не поддерживает рисование фигур; Apache POI делает.
- JXL поддерживает большинство параметров настройки страницы, таких как "Пейзаж/Портрет", "Поля", "Размер бумаги" и "Масштаб". Apache POI поддерживает все это, а также повторяющиеся строки и столбцы.
- JXL не поддерживает Split Panes; Apache POI делает.
- JXL не поддерживает создание или манипулирование диаграммой; что поддержки еще нет в Apache POI, но API начинает постепенно формироваться.
- У Apache POI есть более обширный набор документации и примеров, доступных, чем JXL.
Кроме того, POI содержит не только основной API-интерфейс "usermodel", но и API на основе событий, если все, что вы хотите сделать, - это прочитать содержимое электронной таблицы.
В заключение, из-за лучшей документации, дополнительных функций, активной разработки и поддержки формата Excel 2007+ я использую Apache POI.