【问题标题】:Setting ContentType for default entries in Office Open XML package's [Content_Types].xml为 Office Open XML 包的 [Content_Types].xml 中的默认条目设置 ContentType
【发布时间】:2013-01-04 17:41:11
【问题描述】:

我最近继承了一些遗留代码,让您了解我对这个主题的熟悉程度。

我有一个 C# 应用程序,它通过构建包含必要 XML 文件的 zip 包来创建 Excel 电子表格 (.xlsx)。应用程序手动创建 [Content_Types].xml 文件,并使用 Visual J# 压缩包。我正在尝试通过使用 System.IO.Packaging.ZipPackage 摆脱我们对 Visual J# 的依赖。

我可以正确地构建包含所有必要文件的 zip 包。当我添加包部分时,我设置了它们的内容类型字符串,这反映在 [Content_Types].xml 中。但是,[Content_Types].xml 缺少一些必要的条目,Excel 将其解释为损坏的文件。

例如,在正确的内容类型文件中,有一个名为“rels”的默认条目:

<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>

在我的 zip 包中,rels 条目的 ContentType 属性为空字符串。由于 rels 不是包中的一部分,所以我不知道如何设置它的 ContentType。有没有办法手动做到这一点?

【问题讨论】:

    标签: c# ms-office openxml


    【解决方案1】:

    在 Excel 文档的 ZipPackage 中创建“xl/_rels/workbook.xml.rels”和“xl/worksheets/_rels/datatable.xml.rels”部分时,将它们的 ContentType 字符串设置为“application/vnd.openxmlformats- package.relationships+xml”。

    这会根据 ISO/IEC 29500-2 附录 F 设置关系部分的 ContentType。

    【讨论】:

      猜你喜欢
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      相关资源
      最近更新 更多