Я столкнулся с чем-то похожим, когда использовал CakePHP для создания электронной таблицы с объединениями.Он отлично работает для Excel 2003, но не в формате Excel 2007.Если я создаю электронную таблицу 2007 года, используя:
$objPHPExcel->getActiveSheet()->mergeCells('C30:E30');
, электронная таблица загружается нормально.Однако, используя переменную любым способом, таким как эти варианты:
$mergestr = '\'C'.(30+$i).':E'.(30+$i).'\'';
$objPHPExcel->getActiveSheet()->mergeCells($mergestr);
$objPHPExcel->getActiveSheet()->mergeCells(eval("return \$$mergestr;"));
$objPHPExcel->getActiveSheet()->mergeCells('\'C'.(30+$i).':E'.(30+$i).'\'');
$objPHPExcel->getActiveSheet()->mergeCells('C'.(30+$i).':E'.(30+$i));
Я получаю ту же ошибку, что и вы.Я не уверен, есть ли способ экранировать переменную так, как PHPExcel понравится писателю Excel2007.Writer Excel5 отлично работает с последним примером выше.Надеюсь, это кому-нибудь поможет.