代码之家  ›  专栏  ›  技术社区  ›  BrynJ

PHP Microsoft Excel文件生成/导出类

  •  4
  • BrynJ  · 技术社区  · 17 年前

    我一直在寻找一个好的Excel文件生成类,但还没有找到——我的首要问题是,虽然我可以在Excel中打开导出的文件(运行2007),但我总是收到一条警告,说“文件的格式与文件扩展名不同”。

    我注意到phpMyAdmin中的Excel导出甚至会生成上述警告消息。

    快速更新 如果我将生成的Excel文件的文件扩展名设置为xml,它将在浏览器中打开(即使我发送了正确的标头),但如果我选择保存xml文件,然后从Excel打开它,它将正常工作,不会出现任何警告!不幸的是,对于用户来说,这比简单地点击我收到的警告“无论如何继续”更麻烦。还有其他想法吗?

    5 回复  |  直到 17 年前
        1
  •  8
  •   SEOflyboy SEOflyboy    17 年前
        2
  •  2
  •   Bob Fanger    17 年前

    使用 Spreadsheet_Excel_Writer 来自PEAR

    将文件写入 CSV format .
    但是使用Microsoft Excel对csv的理解:分号(;)作为分隔符

        3
  •  2
  •   Bob Fanger    17 年前

    您还可以使用regedit禁用对话框

    [HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security]
    “ExtensionHardening”=dword:00000000
    
    • 开始->运行->注册表编辑器
    • 转到“HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\OFFICE\12.0\EXCEL\SECURITY”
    • 新DWORD
    • 键入ExtensionHarding作为名称,0作为值
        4
  •  2
  •   BrynJ    17 年前

     <?mso-application progid=\"Excel.Sheet\"?>
    

    我还在php中设置了以下标头:

    // deliver header (as recommended in php manual)
    header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
    header('Content-Disposition: attachment; filename="' . $filename . '.xml"');
    
        5
  •  0
  •   Ionuț G. Stan    17 年前

    文件扩展名

    您是否尝试过用其他文件扩展名保存文件?比如用“foo.xlsx”代替“foo.xls”。

    推荐文章