1

我们有一个工作 PHP 代码片段很长时间了。我们生成简单的 HTML 表格,用户可以将这些表格保存为 XLS 文件。并在 Excel 中打开它。

现在,当我们打开此类文件时,Excel 会打开并显示一个完全空白的灰色区域。没有错误,没有消息。只是一片空白。它仅发生在 Office 2010 获得最后 (2016.07.14) 官方 Microsoft Office 更新的机器上!

上面提到的 PHP 片段非常简单:

header("Content-Type: application/vnd.ms-excel");
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Content-Disposition: attachment; filename=CO3_finance_export.xls");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

echo chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $out);

BOM 在那里,并且 $out 包含该表。如果您在 $out 中放置任何简单的表 - 它不会被唤醒。例如:

<table><tr><td>XX</td></tr></table>

这很奇怪,因为如果我在 Notepad++ 中打开生成的文件并再次保存(没有改变),Excel 会正确打开它。

我认为问题出在 iconv 的某个地方......因为我删除了它 Excel 显示一些奇怪的字符。

有没有人有同样的情况?

我将不胜感激有关我的问题的任何帮助或建议。

4

0 回答 0