Excel 2003 XML 格式不会在 Excel 2010 x64 中自动打开

Posted

技术标签:

【中文标题】Excel 2003 XML 格式不会在 Excel 2010 x64 中自动打开【英文标题】:Excel 2003 XML format not automatically opening in Excel 2010 x64 【发布时间】:2012-04-07 04:53:27 【问题描述】:

我有一个生成 Excel 文件的 vbscript,采用旧式 Excel XML 电子表格 2003 格式。它包含必要的处理说明(即<?mso-application progid="Excel.Sheet"?> 标签),我的用户可以通过双击附件在 Office 2003 和 Office 2007(在 XP 上运行)中打开它们。

我们现在正在测试带有 Office 2010 x64 的 Windows 7 x64 桌面版本,这不再有效。这些文件只是在 IE 中打开并显示底层 XML。如果文件保存到桌面,它仍然会在图标上显示 Excel 标志,但仍会在 IE 中打开。

这是 64 位问题还是 Excel 2010 问题?有解决办法吗?我在想持久性处理程序可能在注册表中丢失或注册错误,但我不知道要添加什么...

【问题讨论】:

【参考方案1】:

一些想法:

也许您还需要指定 Content Header 标记?此 php 代码为我在 Excel 2016 中创建并打开一个 XML 文件:

<?php
    header('Response.ContentType = "application/vnd.ms-excel"');
    header('Content-Disposition: attachement; filename="xlxml.xml"');
    echo '<root><name>sample_name</name></root>';
    exit();
?>

This VBS demonstration 为我生成了一个在 Excel 2016 中正确打开的 Excel 文件。

其他一些相关见解的链接:

Generating Excel (XML Spreadsheet) & Excel header functions

Content-type for MS Office XML

XML Schema Guidelines

Content Disposition

【讨论】:

以上是关于Excel 2003 XML 格式不会在 Excel 2010 x64 中自动打开的主要内容,如果未能解决你的问题,请参考以下文章

怎么设置excel打开csv文件时候的默认编码?

SSIS Excel 连接管理器:文件只能在选择了错误的 Excel 版本时才能读取

为啥Excel无法打开二进制数据?

POI读写大数据量excel,解决超过几万行而导致内存溢出的问题

excel2003如何设置自动换行

从 Excel 导出中删除列