Оказывает, PHPExcel не поддерживает xls файлы с макросами, т.е. .xlsm. Есть вариант воспользоваться библиотекой LibXL, на с++ написать программку и запускать её уже из PHP exec().
15.09.2015 14:55:07
Евгений Задорин,шаблон уменьшить не получится, его заказчик прислал, причём данные в нём меняются только на одном листе, а на остальных листах данные получаются из первого с помощью макроса. С этим я смерился, долго, но данные изменяются. А вот макрос исчезает.
открываю файл таким вот образом: $inputFileType = PHPExcel_IOFactory::identify('templates.xlsm'); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load('templates.xlsm'); сохраняю так: $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->setPreCalculateFormulas(false); $objWriter->save('output.xlsm'); открываю после сохранения макроса нет. Где у меня ошибка? |
|
|
15.09.2015 10:50:57
Алексей Кузнецов, Добрый день!
У меня похожая задача, нужно открыть xlsm файл с макросами, внести в него изменения, сохранить, при этом макросы должны остаться. Шаблон весит около 1,3 мб. Соответственно время на чтение увеличивается, а мне ещё данные в него нужно записать, и в итоге получается time out. Использовать setReadDataOnly(true) нельзя, так как он читает только данные, а стили форматирования, формулы и прочее игнорирует и макросы соот-но тоже. Как мне поступить в таком случае? |
|
|