2016-07-25 132 views
11

我想在本地驱动器上创建一个SpreadsheetML文件,可以在MS Excel或Open Office中通过单击Windows资源管理器中的文件打开该文件。正确的SpreadsheetML文件扩展名

我尝试了所有的文件扩展名注册到Microsoft Excel,我可以找到迄今。 其中一些文件(例如.xls)允许打开文件,但在“文件的格式与文件扩展名指定的格式不同”警告对话框之后。某些扩展(如.xlsx)会导致Excel在不打开文件的情况下显示格式错误对话框。

Wikipedia表示扩展名应该是.xml,但默认情况下它会被网页浏览器注册为打开。

This,thisthis类似的问题是关于从web下载文件并设置适当的内容类型。但我无法更改本地文件的内容类型。

This文章解释了这个烦人的扩展强化机制是如何工作的以及如何禁用它,但我认为强制用户禁用安全功能以允许打开电子表格文件是错误的。

所以没有解决方案或我错过了什么?

+0

我不能相信没有人回答说:/ – tomdemuyt

+0

随着SpreadsheetML中有更给它不仅仅是重命名文件扩展名。 .xlsx文件实际上是压缩文件,其中包含几个.xml文件(其中只有一个是SpreadsheetML文件)。您是否尝试过将.xml扩展名(根据维基百科),但是压缩文件,然后将zip文件的扩展名重命名为.xlsx?您可能想要从Excel保存一个简单的电子表格,并使用一个解压缩工具来查看压缩文件的结构(这里的答案似乎暗示着这种结构)。 – neuronaut

回答

3

现在Open Office可以打开.xlsx(和读取)文件,Excel可以打开(并读取).ods文件。我的建议是挑选最适合你的观众和你对特定文件格式的理解。

这两个应用程序在两者之间都有优点和缺点,以及不支持的功能。

我建议您查看文档Differences between the OpenDocument Spreadsheet (.ods) format and the Excel (.xlsx) format

当你有两个文件格式,如的.xlsx和.ods档案工作,有可能 是格式存在差异,并不是所有功能都可用。 您可以转换数据和内容,但是您使用 的方式的内容可能会因您使用的格式不同而有所不同。

一个问题是与Open Office保存.xlsx文件时它会将格式更改为.ods文件。无论如何,这两个应用程序都会在保存后重新排列文件夹结构。

最大的变化是如何创建SpreadsheetML文件,Open Office和Excel都有不同的文件夹结构,具体取决于您将使用的文件扩展名。

这是一个Excel文件夹格式的简短示例。

-/ 
- _rels/ 
    - .rels 
- xl/ 
    - _rels/ 
    - workbook.xml.rels 
    - sheet1.xml 
    - workbook.xml 
- [Content_Types].xml 

我已经为此创建了一个示例GitHub存储库,该示例将在Excel和Open Office中打开。

https://github.com/Nico-StackOverflow/proper-spreadsheetml-file-extension

+0

嗯,有趣,我个人只对MS Excel感兴趣,感谢您的链接 – tomdemuyt