我正在使用
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:Works
Windows XP / Excel 2007:Works
任何/ OpenOffice:工作
当我告诉PHPExcel生成.xlsx文件(PHPExcel_IOFactory :: createWriter($PHPExcel,’Excel2007′))时,它适用于所有上述组合.
我在MS论坛上发现了无数的线程,它似乎只影响第三方库(不仅仅是PHPExcel)生成的Excel文件的Windows 7文件.但没有人有解决方案.
我还发现了以下MS KB文章,但我不熟悉基础Excel规范:http://support.microsoft.com/kb/2411912
还有其他人经历过这个吗?
如果这是您从MS支持站点突出显示的问题,那么它可能位于PHP_OLE内部的某个位置,可能位于PHPExcel_Shared_OLE_PPS_File类中.我在PHPExcel网站上将其提升为
Issue 15508,并将尝试在Windows 7机顶盒上进行周末调试.
无法保证快速修复:但您已经给了我一个关于如何尝试重新创建问题以及在哪里查看的指针.