【问题标题】:PHP Excel Gives blank output for a formula cell until enable Editing is clickedPHP Excel 为公式单元格提供空白输出,直到单击启用编辑
【发布时间】:2016-01-25 03:07:12
【问题描述】:

我正在使用 phpexcel 创建一个 xlsx 文件。我在文件中有很多公式。下载文件后,一些公式单元格(不是全部)显示为空白,直到我单击启用编辑选项。

我正在使用以下代码:

$objPHPExcel = new PHPExcel();
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$xlsName.'"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');

这里的问题发生在使用以前 Office 版本但没有启用编辑选项的用户身上。对于他们来说,这些单元格显示为空白。

【问题讨论】:

  • 至少提供更多细节.....如果某些公式单元格是空白的,那么请告诉我哪些公式单元格......
  • 虽然您不应该使用Excel2007 Writer 并发送标头告诉浏览器该文件是application/vnd.ms-excel。这是.xls 文件的标头,它是使用Excel5 Writer 创建的。 Excel2007 Writer 生成 .xlsx 文件,其内容类型为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • 我也试过 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 。然后我把它改成了这个,因为我是从stackoverflow.com/questions/8566196/phpexcel-to-download链接得到的
  • 标题不会影响您在使用公式时遇到的问题.....但它们确实会影响浏览器处理文件的方式.....使用您正在使用的文件格式的正确内容类型
  • 但是除非我知道是什么公式导致了问题,否则我对公式无能为力......我猜不出......而且你的代码 sn-p 没有显示公式,并且只会创建一个空的电子表格,所以我怎么能开始猜测呢?

标签: php excel phpexcel


【解决方案1】:

我在其他地方遇到了这个答案。如果其他人正在寻找答案。

$spreadsheet = new \PHPExcel();
$writer = new \PHPExcel_Writer_Excel2007($spreadsheet);

//Do things with the $spreadsheet

//This is the solution, do it before saving
$writer->setPreCalculateFormulas(); 
$writer->save($saving_filepath);

【讨论】:

    猜你喜欢
    • 2018-01-19
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2018-03-22
    相关资源
    最近更新 更多