适当的SpreadsheetML文件扩展名

13

我想在本地驱动器上创建一个SpreadsheetML文件,可以通过在Windows资源管理器中点击文件来在MS Excel或Open Office中打开。

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

维基百科指出扩展名应为 .xml ,但默认情况下它注册为由Web浏览器打开。

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

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

那么,没有解决方案或者我漏掉了什么吗?


我不敢相信没有人回答 :/ - tomdemuyt
使用SpreadsheetML不仅仅是更改文件扩展名那么简单。.xlsx文件实际上是包含多个.xml文件的压缩文件(其中只有一个是SpreadsheetML文件)。您是否尝试过保留.xml扩展名(根据维基百科),但将文件压缩并将zip文件的扩展名更改为.xlsx?您可能需要从Excel中保存一个简单的电子表格,并使用解压缩工具查看zip的结构(这里的一个答案似乎在暗示这种结构)。 - neuronaut
1个回答

3
现在Open Office可以打开(并读取).xlsx文件,Excel也可以打开(并读取).ods文件。我的建议是选择最适合你的受众和你对特定文件格式的理解之一。
这两个应用程序都有优点和缺点以及两者之间不支持的功能。
我建议查看文档OpenDocument电子表格(.ods)格式与Excel(.xlsx)格式之间的区别
引用:

当您使用两种文件格式,如.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


嗯,有趣,我个人只对 MS Excel 感兴趣,感谢提供链接。 - tomdemuyt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接