我正在使用 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 论坛上发现了无数线程,它似乎只影响 Windows 7 文件和第三方库(不仅仅是 PHPExcel)生成的 Excel 文件。但没有人有解决办法。
我还找到了以下 MS KB 文章,但我不熟悉底层的 Excel 规范:http: //support.microsoft.com/kb/2411912
有没有其他人经历过这个?