Почему при открытии файла xls, сгенерированного PHPExcel, нажмите кнопку Сохранить, размер уменьшается?

Я использую PHPexcel_1.8 для создания Microsoft Excel 97-2003 Worksheet (.xls)

 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

$objWriter->save($myFile);

Если я открою файл и нажму СУУ+s (без каких-либо изменений), размер падает почти до 50%.

0

Решение

Просто …. PHPExcel не тратит драгоценные накладные ресурсы PHP на скорость и использование памяти для оптимизации хранения файловых данных; тогда как MS Excel уменьшит требования к размеру файлов за счет оптимизации хранилища. Создание собственного файла формата Excel в PHP идет медленно и требует много памяти

Как пример этого, все строковые данные хранятся в общей таблице строк. Когда две или более ячейки содержат одинаковое строковое значение, MS Excel будет указывать им обеим на одну и ту же запись в таблице общих строк, так что строковые данные сохраняются только один раз. PHPExcel не выполняет эту проверку, чтобы увидеть, находится ли строковое значение в таблице общих строк, но просто создает новую запись, поэтому строка сохраняется дважды. Это сокращает время, затрачиваемое на сохранение данных, за счет устранения накладных расходов, связанных с проверкой строки, уже находящейся в таблице, но за счет дублирования и, следовательно, размера файла.

Ключевой вопрос «что важнее? Чтобы иметь возможность читать / редактировать / записывать нативные файлы Excel в PHP? Чтобы PHPExcel работал как можно быстрее и с меньшим объемом памяти?»
Или иметь наименьший возможный размер файла на диске? «

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]