Windows 7:“Excel发现不可读的内容”

我使用PHPExcel生成一个非常简单的.xls文件( PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel5') )。 无论何时使用Excel 2010或2007在Windows 7上打开该文件,都会出现以下错误:

Excel在'XXXXXXX.xls'中发现了无法读取的内容。 你想恢复这个工作簿的内容吗? 如果您信任此工作簿的来源,请单击是。

当我在Windows XP中的Excel 2010中打开相同的文件时,它工作正常。 如果我在OpenOffice中打开相同的文件,它可以工作,而不管操作系统如何。

Windows 7 / Excel 2010:错误

Windows 7 / Excel 2007:错误

Windows XP / Excel 2010:有效

Windows XP / Excel 2007:有效

任何/ OpenOffice:有效

当我告诉PHPExcel生成一个.xlsx文件( PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007') )时,它适用于所有上述组合。

我在MS论坛上发现了无数的线索,它似乎只影响第三方库生成的Excel文件(不只是PHPExcel)的Windows 7文件。 但没有人有解决方案。

我还发现了以下MS KB文章,但我不熟悉底层的Excel规范:http://support.microsoft.com/kb/2411912

有没有其他人经历过这个?


如果这是您从MS支持站点突出显示的问题,那么它将锁定在PHP_OLE的内部某处,可能位于PHPExcel_Shared_OLE_PPS_File类中。 我在PHPExcel网站上提出了问题15508,并尝试在Windows 7盒子上运行一些周末的调试。

没有一个快速解决方案的保证:但是你给了我一个关于如何尝试和重新创建问题的指针,以及在哪里寻找。


对于我来说,当我使用适当的UTF-8编码字符串而不是ISO-8859-1时,它是固定的。 也许PHPExcel可以暗示糟糕的编码?


你必须用UTF-8编写标题,创建者,LastModifiedby等字段。 这是我的解决方案。

链接地址: http://www.djcxy.com/p/51401.html

上一篇: Windows 7: "Excel found unreadable content"

下一篇: JNDI configuration/lookup in Glassfish