Проблема с размером файла. пока пои читай пиши

Я использую apache poi api для работы с файлами электронных таблиц. Я заметил, что если мы попытаемся отредактировать существующий файл .xls, его размер не будет таким же, как если бы тот же файл (те же данные) был записан за один раз.


person Ahmad Nadeem    schedule 21.02.2011    source источник


Ответы (2)


Это нормально, когда таблица Excel увеличивается после открытия или редактирования. Когда электронная таблица открывается в Microsoft Excel, формулы рассчитываются автоматически, поэтому размер файла увеличивается. Если электронная таблица открывается с помощью Apache POI, разработчик должен вызвать (FormulaEvaluator ), чтобы обновить все значения. Когда электронная таблица читается Apache POI, а формулы не оценивались, ответы формул могут быть недействительными.

person JasonV    schedule 24.02.2011
comment
Ну, возможно, вы можете быть правы в каком-то смысле, но я думаю, что я не совсем понятен контекст или что-то в этом роде. На самом деле меня беспокоило то, что я не использую никаких формул в электронной таблице и не записываю строки в файл. разница только в том, что один файл создается с первой попытки (т.е. 100 записей), тогда как другой файл с теми же 100 записями создается за два или три сеанса (т.е. 50 + 50). хотя оба файла имеют одинаковые записи (без какой-либо формулы). но размер у них разный. Я использую Apache POI для этого. - person Ahmad Nadeem; 25.02.2011

POI всегда будет записывать одну запись на ячейку

Однако Excel иногда объединяет несколько одинаковых последовательных ячеек в одну запись. Например, если у вас есть 3 ячейки в строке, которые пусты, но стилизованы, Excel создаст MulBlankRecord, который содержит их все. Для нескольких ячеек подряд с простыми числами Excel использует МулРКРекорд

Когда POI читает файл, он расширяет все записи Mul*. Во время записи записываются отдельные записи ячеек, поэтому файл становится немного больше. Я думаю, что в POI bugzilla есть запись об улучшении, позволяющем POI объединять ячейки в записи Mul, но, похоже, никто еще не вызвался работать над этим...

person Randomness    schedule 29.05.2011