OSX / iOS预览版兼容SpreadsheetML(.xlsx)

时间:2017-07-06 04:39:29

标签: ios macos spreadsheetml

我以编程方式生成SpreadsheetML,捆绑在.xlsx文件中。这些文件在Windows,OSX和iOS上的Excel上完美打开。但是在OSX或iOS上使用预览或数字时,文件不会显示任何内容。看来Preview和Numbers仅支持SpreadsheetML的一个子集。有没有人知道预览支持的SpreadsheetML子集的规范?

1 个答案:

答案 0 :(得分:1)

我有一个经验,有一个.Net SML导出器的部分,我们使用Xamarin移植到iOS。我们的出口商故意使用尽可能少的完整格式的功能,因为我们的代码角色是导出报告的最小格式化和缺少任何真正的“多媒体”,如图表等。这种格式确实在Excel和Numbers上打开的iOS。

an absolute minimum,SML表需要一个workbook.xml,至少一个sheetNN.xml,然后将它们压缩。但是,即使在Windows上,我也不相信描述会真正起作用。

我们开发的最小集合包含一个包含[Content_Types].xml文件,_rels文件夹和xl文件夹的外部文件夹。 _rels包含一个文件.rels,它基本上只指向worksheet.xmlxl包含另一个_rels,其中包含指向工作表的单个文件workbook.xml.rels。最后,xl还有一个worksheets文件夹,每个sheetNNN.xlm,以及styles.xmlworkbook.xml位于根目录。

我建议这样做:

  1. 在Windows Excel上制作一个非常简单的工作簿。更改扩展名 .zip,并将其解压缩到一个文件夹,然后复制。
  2. 找到上面列表中没有的项目,然后将其删除。在文本编辑器中编辑其他文件,并删除指向您删除的文件的所有链接。
  3. 重新压缩文件夹(这可能很烦人,你最终可能会结束 如果在命令行之外执行,则压缩文件夹中的文件夹)并尝试 在Excel中打开它。
  4. 如果打开,请在Mac上的数字中尝试。
  5. 重复(2)和(3)
  6. 这将是耗时且烦人的,但我不确定还有其他方法可以确定。我怀疑并非真正需要_rels数据,但我还没有走进兔洞那么远。