时间:2010-07-25 11:09:16

标签: openxml-sdk openxml

2 个答案:

答案 0 :(得分:3)

除了Otaku的链接之外,this还显示了使用IO.Packaging命名空间与SDK导航OpenXML文档的示例(靠近底部)。

就像微软在download page for the SDK上所述:

  

适用于Microsoft的Open XML SDK 2.0   办公室建立在   System.IO.Packaging API并提供   强类型的零件类   操纵Open XML文档。 SDK   也使用.NET Framework   语言集成查询(LINQ)   技术提供强类型   对象访问XML内容   在Open XML的部分内部   文档。

     

Open XML SDK 2.0简化了   操作Open XML包的任务   和底层的Open XML架构   包中的元素。公开赛   XML应用程序编程接口   (API)封装了许多常见任务   开发人员在Open XML上执行的操作   包,所以你可以执行复杂的   只需几行的操作   代码。

我几乎只使用SDK,但是,例如,只需使用以下方法就可以从Word文档中获取表格,这很好:

Table table = wordprocessingDocument.MainDocumentPart.Document.Body.Elements<Table>().First();

(我的意思是,假设它是第一张表)

我认为SDK通过提供一种基于对象的直观方式来处理文档,从而完全符合它的目的。

至于自动修补关系 - 不,它不会那样做。回顾一下你如何实际陈述问题,我想我甚至可以这么说(而且我对Open XML相当新,所以这不是福音)SDK2.0不一定提供任何额外的功能,因为它提供了一种更方便的方式来实现相同的功能。例如,删除元素时仍需要了解这些关系,但处理它们要容易得多。

此外,在SDK之上还有一些努力可以添加更多抽象 - 例如,请参阅ExtremeML(仅限Excel库。我从未使用过它,但我认为它确实可以进入喜欢修补关系)。

所以,如果我在这里絮絮叨叨,我很抱歉。但我想我的简短答案是:可能没有额外的功能,但有一个很好的抽象级别,使得实现某些功能更容易处理 - 如果你一直在手工做到现在,你会当然要理解OPC才能理解究竟是什么被抽象出来。

答案 1 :(得分:2)