2009-12-03 5 views
3

Кто-нибудь нашел библиотеку, которая хорошо работает с большими электронными таблицами?пишут большие таблицы Excel

Я пробовал POI apache, но он терпит неудачу, работая с большими файлами - как чтение, так и запись. Он использует огромные объемы памяти, и вам нужно, чтобы суперкомпьютер разбирался или создавал электронную таблицу 20 + mb.

Несомненно, есть более эффективный способ памяти, и кто-то написал это ?!

+0

Возможно, вам нужна электронная таблица, а не (встроенная) база данных? Или, может быть, даже CSV? – BalusC

+0

Да, я уверен. – pstanton

+0

Ну, тогда ты практически потерян. Или, подождите .. Разрешен ли 'xlsx'? Или это действительно 'xls'? – BalusC

ответ

0

во время публикации, нет чистого масштабируемого решения Java для чтения и записи больших файлов excel.

+0

Используйте новый SXSSF poi 3.8 для файлов xlsx http://stackoverflow.com/a/11919450/403999 –

0

Вы пробовали JExcelAPI в качестве альтернативы POI? Признаюсь, я не могу прокомментировать его эффективность памяти.

+0

уверен, что он читает весь рабочий лист в то время, которые будут сталкиваться с проблемами памяти. – pstanton

+0

Ну, я думаю, проблема в том, насколько эффективен * JExcelAPI при чтении этой таблицы по сравнению с POI. –

1

Я не могу рекомендовать вам библиотеку. Но когда вам нужна лучшая производительность, возможно, стоит попробовать обратиться к людям, которые пришли с Excel в первую очередь. Я предполагаю, что API-интерфейсы, доступные из .NET, намного эффективнее обрабатывают файлы Excel. Таким образом, идея состоит в том, чтобы реализовать веб-сервис или аналогичный компонент в .NET, который выполняет большую часть работы, связанной с Excel, и просто вызывается из Java.

+0

+1 хорошая идея, но не реалистична для этого проекта. – pstanton

+0

Это лучшее решение, так как раньше она говорила, что это не может быть какая-либо база данных или CSV, но она должна быть превосходной. Поэтому используйте технологии Microsoft, если вы любите Excel и не можете использовать что-либо еще. .NET-материал действительно прекрасно работает вместе. – Karl

+0

Кто такой «она»? – pstanton

1

Это в основном та же идея, что и Jannik's, но вы используете Java COM Bridge для доступа к API-интерфейсам Excel непосредственно с Java. У нас был хороший успех, делая это со Словом. Очевидным недостатком является то, что он работает только в Windows.

-1

Может быть, формат CSV-файла может вам помочь. Вам просто нужно разделить каждое значение запятой и сохранить файл с расширением .csv.

2

@pstanton .. Я работал над аналогичным решением и смог написать большие файлы Excel Excel с сотнями строк, экспортированных из базы данных. Вот ссылка на него: http://vikramvkamath.blogspot.com/2010/07/writing-large-excel-files-excel-2007.html

Мое решение является продолжением на классе SheetWriter Егора Козлова следуют этой http link и она работает очень хорошо для меня. Сообщите мне, если у вас возникнут проблемы.

~ Vikram

+0

спасибо vikram ... ваше сообщение в блоге интересно, и я буду подробно его читать, когда найду время. – pstanton

+0

добро пожаловать! – Vikram