Какой из 2 API проще читать / писать / редактировать таблицы Excel? Эти API-интерфейсы не поддерживают расширения CSV?
Используя JXL для file.xls и file.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.
java
excel
apache-poi
jxl
Свагатика
источник
источник
Ответы:
Я использовал как JXL (теперь «JExcel»), так и Apache POI . Сначала я использовал JXL, но теперь я использую Apache POI.
Во-первых, вот вещи, в которых оба API имеют одинаковую конечную функциональность:
Однако есть много отличий:
Кроме того, POI содержит не только основной API «пользовательской модели», но и API, основанный на событиях, если все, что вам нужно, - это читать содержимое электронной таблицы.
В заключение, из-за лучшей документации, большего количества функций, активной разработки и поддержки формата Excel 2007+ я использую Apache POI.
источник
getContents()
метод в JExcelAPI сэкономил мне много времени. С помощью POI вы должны проверить его тип ячейки, затем получить его значение (если это числовая ячейка, вам нужно проверить, является ли это ячейкой даты) в соответствии с ее типом, и, наконец, преобразовать ее в значение String с помощью различных методов, что так неудобно. Не могу себе представить, что POI не предоставляет такой грязный, но удобный метод, как JExcelAPI.Я использовал POI.
Если вы используете это, следите за этими программами форматирования ячеек: создайте один и используйте его несколько раз вместо того, чтобы создавать каждый раз для ячейки, это огромная разница в потреблении памяти или больших данных.
источник
Я не знаком с JXL, но мы используем POI. POI поддерживается в хорошем состоянии и может обрабатывать как двоичный формат .xls, так и новый формат на основе xml, представленный в Office 2007.
Файлы CSV не являются файлами Excel, это текстовые файлы, поэтому эти библиотеки не читают их. Вам нужно будет самостоятельно разобрать CSV-файл. Мне неизвестны библиотеки файлов CSV, но я тоже не смотрел.
источник
Для чтения «простых» файлов CSV на Java существует библиотека OpenCSV, доступная здесь: http://opencsv.sourceforge.net/
источник