2013-01-04 39 views
0

我最近繼承了一些遺留代碼,讓您瞭解我對此主題的熟悉程度。爲Office Open XML包中的默認條目設置ContentType [Content_Types] .xml

我有一個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。有沒有辦法做到這一點手動?

回答

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。