Что лучше API для чтения листов Excel в java-JXL или Apache POI [закрыто]
какой из 2 API проще читать/писать / редактировать листы excel ?
Эти API не поддерживают расширения CSV ?
использование JXL для файла.XLS и файл.xlsx, я получаю исключение, как:
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:268)
at core.ReadXLSheet.contentReading(ReadXLSheet.java:46)
at core.ReadXLSheet.init(ReadXLSheet.java:22)
at core.ReadXLSheet.main(ReadXLSheet.java:72)
как для .xls и .расширения xlsx.
Версия Java, которую я использую: JDK1. 6
4 ответов:
Я использовал как JXL (теперь "JExcel") и Apache POI. Сначала я использовал JXL, но теперь я использую Apache POI.
во-первых, вот вещи, где оба API имеют одинаковую конечную функциональность:
- вход свободный
- стиль ячейки: выравнивание, фоны (цвета и узоры), границы (типы и цвета), поддержка шрифтов (имена шрифтов, цвета, размер, жирный шрифт, курсив, зачеркивание, подчеркните)
- Формулы
- ссылки
- Объединенные области ячеек
- размер строк и столбцов
- форматирование данных: числа и даты
- обертывание текста внутри ячеек
- Закрепить Области
- поддержка верхнего / нижнего колонтитула
- чтение/запись существующих и новых таблиц
- оба пытаются сохранить существующие объекты в электронных таблицах, которые они читают, в целости и сохранности вероятный.
однако, есть много различий:
- возможно, наиболее существенным отличием является то, что Java JXL не поддерживает Excel 2007+ ".xlsx " формат; он поддерживает только старый BIFF (двоичный)".формат xls. Apache POI поддерживает оба с общим дизайном.
- кроме того, Java-часть JXL API была в последний раз обновлена в 2009 году (3 года, 4 месяца назад, когда я пишу это), хотя похоже, что есть API C#. Апач пои активно поддерживать.
- JXL не поддерживает Условное форматирование, Apache POI делает, хотя это не так важно, потому что вы можете условно форматировать ячейки с вашим собственным кодом.
- JXL не поддерживает richтекст форматирование, т. е. различное форматирование в текстовой строке; Apache POI поддерживает его.
- JXL поддерживает только определенные повороты текста: горизонтальные / вертикальные, + / - 45 градусов и сложены; Apache POI поддерживает любое целое число градусов в стеке.
- JXL не поддерживает рисование фигур; Apache POI делает.
- JXL поддерживает большинство параметров настройки страницы, таких как альбомная/Книжная, поля, размер бумаги и масштабирование. Apache POI поддерживает все это плюс повторяющиеся строки и столбцы.
- JXL не поддерживает разделенные панели; Apache POI делает.
- JXL не поддерживает создание диаграмм или манипуляции; эта поддержка еще не существует в Apache POI, но API медленно начинает формироваться.
- Apache POI имеет более обширный набор документации и примеров, доступных, чем JXL.
кроме того, POI содержит не только основной API "usermodel", но и API на основе событий, если все, что вы хотите сделать, это прочитать содержимое электронной таблицы.
В заключение, из-за лучшей документации, большего количества функций, активной разработки и поддержки формата Excel 2007+, я использую Apache POI.
Я использовал POI.
Если вы используете это, следите за этими форматерами ячеек: создайте один и используйте его несколько раз вместо того, чтобы создавать каждый раз для ячейки, это огромная разница в потреблении памяти или большие данные.
Я не знаком с JXL, но мы используем POI. POI хорошо поддерживается и может обрабатывать как двоичный файл .формат xls и новый формат на основе xml, который был представлен в Office 2007.
CSV-файлы не являются файлами excel, они являются текстовыми файлами, поэтому эти библиотеки не читают их. Вам нужно будет самостоятельно разобрать CSV-файл. Я не знаю о каких-либо библиотеках файлов CSV, но я тоже не смотрел.
для чтения" простых " CSV-файлов в Java существует библиотека под названием OpenCSV, доступная здесь:http://opencsv.sourceforge.net/
Comments