2013-12-12 2 views
0

Описание проблемы: я хочу загрузить данные пикселя изображения в листе excel.java excel api для удовлетворения моих требований?

Что я пробовал: используя apache POI для записи данных, чтобы добиться отличного результата, но я обнаружил, что в apache POI есть некоторые ограничения (как описано ниже) Я узнал об некоторых обходных решениях, которые являются утомительными по части программиста, и я не очень хочу это сделать для такой тривиальной задачи.

Детали:

я использую Apache POI в течение достаточно долгого времени, и я пришел через несколько ограничений:

  • весь файл находится в памяти сразу, поэтому не могу использовать непосредственно для больших файлы.

(специфичные для HSSF):

  • не более 255 столбцов
  • не более чем 4000 стили ячеек
  • косяка использование пользовательских цветов непосредственно.

Мое требование - считывать изображение (скажем, 1024x764) по пикселям и записывать значение пикселя в строках и столбцах листа excel, каждое другое значение пикселя оформляется по-разному.

проблемы я столкнулся является:

  • из исключения памяти, при записи в лист Excel, из-за так много строк/столбцов и стилей
  • пишущих логику для повторного использования стилей замедлят вся программа
  • даже если я повторно использовать стили, что делать с огромным количеством строк/столбцов

Я пришел, чтобы знать, что существуют обходные пути для этих проблем:

  • повторное использование стилей
  • написание логики для использования эффективной памяти

, но я не собираюсь брать много боли работу так просто, и так как они не имеют прямого ограничения первенствует (atleast not .xlsx), я ищу библиотеку, которая может сделать это для меня.

Может кто-нибудь может предложить другую библиотеку, которая может это сделать, или вы можете предложить несколько простых обходных решений для этих проблем?

+0

Возможно, вы захотите рассмотреть вопрос о переписывании этого вопроса (возможно, попросить эффективные способы решения указанных проблем?), Так как запрос на рекомендации библиотеки может считаться неактуальным. – pnuts

+0

Я отредактировал вопрос и добавил соответствующую информацию наверху. Я не верю этому запросу ** привлекает упрямые ответы и спам **, поскольку у меня есть действующий, определенный набор требований, на которые я ищу ответы, и ищу другую библиотеку, которая может это сделать без большой нагрузки на программиста , – gaurav5430

ответ

2

может кто-то пожалуйста, предложите хорошую библиотеку, чтобы сделать это, иначе я изменится от Явы до Csharp

Короче, Нету - в POI библиотеки, в моем опыте, лучшие из них доступны для работы. Они не идеальны, но я не знаю альтернативы, которая лучше. Вы можете попробовать checking trunk out и посмотреть, не решены ли какие-либо из ваших проблем там - вполне возможно, это относительно активный проект.

Единственная вещь, которую я предложил бы смотреть на это OpenOffice API, но заметьте, что требует OO должен быть установлен (или распространяться с приложением.)

Честно говоря, хотя, сила POI является его кросс-платформенный характер - это чистая реализация Java без собственных компонентов. Если вы не заботитесь об этом и, следовательно, можете пойти с C# и использовать собственные API-интерфейсы офиса, это, по-видимому, логичный подход? Мне кажется странным, что вы уже не делаете этого.

+0

Я не делаю этого уже потому, что я ищу Java-решение. C# должен был быть моим последним курортом. Я надеюсь, что в java есть более простой способ выполнить эту тривиальную задачу (копировать данные пикселя изображения в excel) – gaurav5430

0

JExcelApi http://jexcelapi.sourceforge.net/

Он работает в заявительном режиме, так как Adobe LifeCycle электронной JReport: создать файл шаблона XLS Andin каждую клетку вы поместили ссылку на бобах.

Вызов двигателя, в конце у вас есть файл XLS.

Извините за экстремальный синтез, но я работал с ним много лет назад, и я не помню деталей, но на сайте есть документация.

+1

Полностью верно, но OP явно нуждается в поддержке XLSX, которая является функцией это очень не хватает в jExcelAPI – fvu

+0

Я также очень уверен, что jExcelAPI (когда я использовал его как минимум) все еще держал весь файл в памяти сразу? – berry120

Смежные вопросы