PHPExcel Warning/Error when opening document
我使用 PHPExcel 库构建了一个 Excel 文档。我的文档在 Numbers (mac) 和 Office 2007 (windows) 中打开并且看起来都很好。我将我的文件保存为 .xlsx 文件。
当我打开文件时,虽然它显示正常,但它会给出以下错误/警告。
在 Numbers 中,它给出警告"不支持工作表上的密码保护并已被删除"
在 Office 2007 中,它给出错误"Excel 在 'filename.xlsx' 中发现不可读的内容。您要恢复此工作簿的内容吗?如果您信任此工作簿的来源,请单击是。"当我单击"是"时,一切都显示正常,并显示"已删除记录:从 /sl/worksheets/sheet1.xml 部分合并单元格"。
需要注意的是,我没有在我的文件中添加任何密码。我也只有一本工作簿。有谁知道我怎样才能摆脱这些或可能导致它们的原因?
我遇到了同样的问题,我解决了简单地放一个
1 |
就在
例如
1 2 3 4 5 6 7 8 | // Redirect output to a client’s web browser (Excel2007) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="industrializzazione_RTW_'.$rows[0]['stagione'].'.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit(); |
我在使用 CakePHP 使用合并单元构建电子表格时遇到了类似的情况。它适用于 Excel 2003,但不适用于 Excel 2007 格式。如果我使用以下方法构建 2007 电子表格:
1 | $objPHPExcel->getActiveSheet()->mergeCells('C30:E30'); |
电子表格加载正常。但是以任何方式使用变量,例如这些变体:
1 2 3 4 5 | $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 编写器的方式转义变量。 Excel5 编写器适用于上面的最后一个示例。希望这对某人有帮助。