Анализатор электронных таблиц в Java / Groovy - PullRequest
4 голосов
/ 28 января 2009

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

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

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

Спасибо

Ответы [ 8 ]

8 голосов
/ 28 января 2009

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

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

3 голосов
/ 28 января 2009

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

Не могу помочь вам с файлами ODS.

2 голосов
/ 23 февраля 2009

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

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

2 голосов
/ 04 февраля 2009

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

1 голос
/ 13 августа 2009

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

1 голос
/ 29 января 2009

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

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

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

0 голосов
/ 29 января 2009

Пара вещей:

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

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

0 голосов
/ 28 января 2009

Если ваши электронные таблицы достаточно просты - без диаграмм и другого встроенного содержимого - вы должны просто преобразовать электронную таблицу в CSV .

Плюсы:

  • И xls, и ods будут создавать одинаковый CSV - вам придется обрабатывать только один тип ввода.
  • Вам не придется связываться с новыми версиями (Open) Office.
  • Обработка открытого текста всегда веселее, чем другие непонятные форматы.

Минусы:

  • Единственное, о чем я могу подумать - найти надежный конвертер из xls и odf в csv. Не должно быть слишком сложно - у OpenOffice есть встроенный.
...