Задача состоит в том чтоб через php прочесть xlsm шаблон, заполнить, и выгрузить под другим названием. Пользовал PHPEXCELL но он не работает с xlsm. Единственное решение нашел через PHP COM. но сейчас стал вопрос переезда на UNIX сервер и аналогичного решения найти не могу. Подскажите если кто знает.
redreem
22.03.2016 - 17:09
Цитата |
Пользовал PHPEXCELL но он не работает с xlsm |
работает. лично делал тоже самое. как минимум читал его. писать не пробовал, но чтение без проблем.
require_once ('PHPExcel/IOFactory.php');
$objPHPExcel = PHPExcel_IOFactory::load("test.xlsm");
$objPHPExcel->setActiveSheetIndex(0);
$aSheet = $objPHPExcel->getActiveSheet();
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save("test2.xlsm");
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel);
Файл таки да создается но битый без возможности открыть. Хотя первичный файл нормально открывается.
redreem
22.03.2016 - 17:55
у меня при чтении скрипт валился. я нашел один баг в phpExcel, пофиксил, - заработало.
возможно у тебя эта же проблема но уже с записью. дай почту - скину пофиксеный класс, попробуешь.
в личке послал. Большое спасибо за отзыв.
применил изменения. Файл открылся но с ошибкой и без макросов.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error055320_01.xml</logFileName><summary>
Errors were detected in file 'test2.xlsm'</summary>
<removedRecords summary="Following is a list of removed records:"><removedRecord>Removed Records: Named range from /xl/workbook.xml part (Workbook)</removedRecord>
</removedRecords></recoveryLog>
redreem
22.03.2016 - 18:28
странно. ну в общем заходи в тот метод, на котором у тебя падает и дебаж построчно. станет понятно "что у него не получается сделать". у меня была проблема с коментами в vbl, не мог он их прочитать нормально. значит у тебя другое что-то. я так подозреваю, что изза кучи версий xls надо под конкретную версии отлаживать.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.