我试图用1000种不同的方法解决这个问题.感谢是否有其他人可以发现问题.
我有使用PHPExcel的代码生成多个Excel工作表并将其保存到磁盘.
当使用MS Excel 2010打开第二个文件中的所有内容时,我收到错误"Excel在FILENAME中找到了不可读的内容.是否要恢复此工作簿的内容." 该文件已"恢复"并且工作正常.在OPEN Office开业不会产生任何错误.
这是代码的简化版本.
<?php
$filenames = array("filenames go here");
$sheet1 = PHPExcel_IOFactory::load($template1);
$writer1 = new PHPExcel_Writer_Excel2007($sheet1);
$writer1->save('somefilename.xlsx');
//This file opens without problem
$sheet1->disconnectWorksheets();
unset($sheet1);
unset($writer1);
$i = 0;
foreach($filenames as $file){
$template = "template2.xlsx";
$fileName = 'filename' . $i . ' .xlsx';
$spreadsheet = PHPExcel_IOFactory::load($template);
$objWriter = new PHPExcel_Writer_Excel2007($spreadsheet);
$objWriter->save($fileName);
$spreadsheet->disconnectWorksheets();
unset($spreadsheet);
//This file throws error when opened in Excel 2007+
$i++;
}
?>
Run Code Online (Sandbox Code Playgroud)
我检查过以下内容:
真正的代码完成了一大堆额外的东西,但我已经通过评论它来检查它是不负责任的.上面的代码似乎是唯一可以引入问题的地方.
任何建议都感激不尽.
==== EDITED ====这是Excel生成的错误日志:
<?xml …Run Code Online (Sandbox Code Playgroud)