Парсер электронных таблиц в Java/Groovy

Привет, я хочу анализировать электронные таблицы (xls/ods) в Groovy. Я использовал библиотеку Roo для Ruby и хотел попробовать те же задачи в Groovy, поскольку Java уже установлена ​​на сервере разработки, который я использую, и я хотел бы, чтобы количество технологий на сервере было простым ядром. .

Я знаю, что формат ods представляет собой заархивированный XML, поэтому его можно анализировать как таковой, но я хотел бы обработать файл с использованием концепций электронных таблиц, а не концепций XML.

Возможность обработки файлов xls не имеет большого значения, но избавит меня от необходимости сохранять несколько файлов xls в ods (так как это нужно для анализа данных от клиентов).

Спасибо


person BefittingTheorem    schedule 28.01.2009    source источник


Ответы (8)


Я бы предложил Apache POI для доступа к файлам .xls.

Мне никогда не приходилось работать с форматом .ods, поэтому информации о нем нет.

person jdmichal    schedule 28.01.2009

Существует также JExcelAPI с приятным, чистым и простым интерфейсом (по большей части).

Однако не могу помочь вам с файлами ODS.

person cletus    schedule 28.01.2009
comment
Я использовал JExcelAPI в проекте Grails, и он прекрасно работал. Я очень рекомендую это. - person anschoewe; 20.02.2009

Как насчет просмотра «odftoolkit»? http://odftoolkit.openoffice.org/

person Community    schedule 04.02.2009

Groovy в действии содержит главу "Groovy для Windows", в которой обсуждается использование Scriptom, мост Groovy/COM (с использованием JACOB под обложками), чтобы получить доступ к нескольким приложениям Windows, включая Excel.

Для OpenOffice вы можете использовать ODF Toolkit, как указал Амит.

person Matt Passell    schedule 23.02.2009

Я второй голос jdmichal за POI Apache. Я выбрал его в качестве нашей библиотеки для обработки ввода файлов Excel (.XLS). Проект также работает над форматом файла .XLSX, если вы когда-нибудь решите его поддерживать. Основываясь на ваших спецификациях, я не думаю, что вы хотите преобразовывать вещи в CSV, и похоже, что вы установили пути ввода и вывода. Для тех, кто не имел удовольствия иметь дело с преобразованием CSV в Excel, это может стать немного рискованным. Я потратил часы на решение проблем, возникающих при преобразовании строковых данных Excel в числовые данные. Вы можете ознакомиться с другими свидетельствами на этот счет на странице тематических исследований POI. Помимо этих проблем, я просто не хочу лично обрабатывать эти входные данные. Я лучше вложу усилия в программирование и оптимизирую рабочий процесс на будущее.

Я тоже не имел дела с ODF и не планирую поддерживать его в своем текущем проекте. Вы можете ознакомиться с проектом OpenOffice.org ODF Toolkit.

Удачи и веселья, - Д.

person dshaw    schedule 28.01.2009

Я предлагаю вам взглянуть на SimpleXlsBuilder и SimpleXlsSlurper, оба основаны на на apache POI и может в сжатой форме удовлетворить ваши основные потребности в чтении и записи в электронные таблицы Excel 97.

person user155484    schedule 13.08.2009


Пара вещей:

1) Я согласен с тем, что использование формата CSV может упростить часть работы по разработке. OpenCSV может помочь в обработке CSV-файлов. Есть и другие хорошие парсеры CSV для Java. Просто помните, что Groovy может использовать все, что доступно для Java, благодаря беспрецедентной интеграции Groovy с Java.

2) Я знаю, вы сказали, что хотите избежать обработки XML, но Groovy делает обработку XML чрезвычайно простой .

person yawmark    schedule 28.01.2009
comment
это точно, но как всегда, я хочу еще проще :) Я в основном ищу клон Roo, как в открытой электронной таблице, перебираю строки, перебираю ячейки, извлекаю данные. В противном случае это означает открытие и извлечение zip-файла, а затем анализ XML-файла + знание схемы XML. - person BefittingTheorem; 29.01.2009