0

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

我有一个 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。有没有办法手动做到这一点?

4

1 回答 1

0

在 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。

于 2013-01-08T19:32:14.213 回答