php Spreadsheet_Excel_Writer 类将mysql的数据 写入到excel 下载下来后excel文件打不开 一打开就提示“test.xls中发现不可读取的内容。是否要恢复此工作薄的内容?如果信任此工作薄的来源,请单击‘是’” 这是怎么回事
 

解决方案 »

  1.   

    1、当打开Excel时弹出“……发现不可读取的内容,是否恢复此工作簿的内容?……”对话框;
    2、单击“是”,会弹出“通过修复或删除不可读取的内容,Excel已能够打开该文件。”对话框,并显示了文件出错的位置;
    3、现在已经知道了出错的位置,下一步就是找到出错文件改正过来,先把Excel文件的扩展名(.xlsx)更改为压缩文件(.zip);
    4、双击打开zip文件,找到xl文件夹下的sharedStrings.xml文件并双击打开文件(一般以IE浏览器打开),在IE浏览器上会显示错误原因;
    5、在页面上单击鼠标右键→单击“查看源文件”,会弹出源代码窗口(通常以记事本打开),根据图2和图5的提示找出错误代码,并按照xml文件的语法规则改正代码(本例中是“<si><t>菲达环保</si></t>”嵌套出错了,应改为“<si><t>菲达环保</t></si>”),然后保存记事本;
    6、再刷新一下IE浏览器上的错误页面,出现下图页面,即表示修改正确;
    7、此时单击任务栏下刚才打开的压缩包,会提示“文件***已经被修改。你希望在压缩文件中更新它吗?”,选择“是”;
    8、最后把zip文件扩展名再改回原来的扩展名,即.xlsx,双击打开文件,有提示的话点“是”,这时你的数据已恢复原样了。
      

  2.   


    我改成zip格式后 ,双击打不开,提示‘文件未知或者数据已经破坏’
      

  3.   

    他说的是 .xlsx 而你的是 .xls
    不一样的!
      

  4.   

    我生成的excel就只是.xls的 .xlsx是版本不一样的么
      

  5.   

    .xls 是 office2003 及以前的 .xlsx 是office2007 的,不装补丁用 office2003 是打不开的
      

  6.   

    问题终于解决了,是php的本身包的问题,不怪写的程序 要改writebook.php这个文件