我正在使用cakephp XLS帮助程序在我的项目中生成Excel报告。 但生成的文件在Windows系统中发出警告消息,如下所示。
同样,同一个文件在linux上的open-office中显示整个xml标记,如下所示。 部分视图文件代码如下所示。
$xls->setHeader('Report_'.date('Y_m_d'));
$xls->addXmlHeader();
$xls->setWorkSheetName('Enrollment Report');
//1st row for columns name
$xls->openRow();
$xls->writeString('ID');
$xls->writeString('Zipcode');
我的客户想要一个正确的Excel报告,不要在窗口中发出任何警告。 请建议我使用cakephp的任何excel助手,它将在所有平台和不同的应用程序上生成适当的excel文件。
答案 0 :(得分:1)
我认为你需要设置mime类型。这在过去发生在我身上,当时一位年长的excel助手的mime类型设置为过时值。
来自链接(由Ivo)帮助程序的代码具有以下内容:
function _output($title) {
header("Content-type: application/vnd.ms-excel");
header('Content-Disposition: attachment;filename="'.$title.'.xls"');
header('Cache-Control: max-age=0');
$objWriter = new PHPExcel_Writer_Excel5($this->xls);
$objWriter->setTempDir(TMP);
$objWriter->save('php://output');
}
我会确保你是:
a)使用最新的助手(http://bakery.cakephp.org/articles/melgior/2010/01/26/simple-excel-spreadsheet-helper)
b)实际设定了mime-type。
c)该特定的哑剧类型是准确的。答案 1 :(得分:1)
您的问题是您正在使用将数据放入xml格式的帮助程序。 Excel可以读取XML和HTML,但会显示警告。您应该使用Ivo在评论中建议的那个。 LINK 这个助手确实制作了符合开放式办公室和办公室的xls有效格式。此外,这个帮助程序依赖于不断更新的here PHPExcel类,因此如果需要,您的代码将很容易升级。
请记住按照帮助页面中的说明进行操作。
我已经为cakephp尝试了很多这个xls帮助器,但是没有一个像预期的那样工作,要么过时,要么创建xml或html表,或者根本没有工作,但是还没试过这个...使用PHPExcel创建帮助程序应该不会给您带来太多麻烦,您可以使用this tutorial作为修改帮助程序的基础。