Excel导出PHP问题

时间:2016-08-06 00:00:20

标签: php excel attachment

这是我有一个简单的PHP文件的问题,该文件将表导出到excel文件,扩展名为" .xls"。导出的代码如下:

.text01 {
  position: relative;
  float: left;
  color: black;
  padding: 0;
  margin: 0;
  background-color: white;
  margin-top: 20px;
  height: 80%;
  width: 80%;
  background-color: transparent;
}

这个PHP类是从一个像这样的buton调用的:

header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=filename.xls" );
header("Content-Description: PHP/INTERBASE Generated Data" );
header("Expires: 0");
Rest of the PHP code that has HTML tags for the table

浏览器会提示您下载或保存文件。 根据用户计算机中安装的Excel版本,尝试打开下载的文件时会出现此问题:

  • Excel 2010,Excel 2013:它只是打开Excel而不打开文件,程序不会给出任何提示或任何警告,它只是挂在灰色的窗口上。
  • Excel 2016在用户说文件可能已损坏之前打开文件,并询问用户是否确定要打开该文件。单击是,文件将正确打开,显示表

我尝试过微软网页的故障排除但没有任何效果。这里有趣的部分是,如果你去File - >打开 - >最近的书籍并点击下载的文件,现在它可以正确打开而无需对文件进行任何更改。

3 个答案:

答案 0 :(得分:0)

也许您应该将text/csv指定为具有.csv扩展名的内容类型,具体取决于您的代码(如果已安装,Excel将打开csv就好了。)

你真的遗漏了最重要的代码(Rest of the PHP code that has HTML tags for the table中的内容)。

Excel文件不是HTML或表格,所以如果你输出HTML或CSV并试图说内容类型是Excel,那就错了。

答案 1 :(得分:0)

微软最近发布了一些更新,阻止它打开包含HTML的excel文件。 KB 3115322,3115262安全更新

答案 2 :(得分:-1)

是的,它是关于Excel更新,因为所有计算机都有此更新,因此我必须找到一种方法来绕过此问题,以便打开这些文件,以便用户可以继续工作。

感谢

相关问题