将XML嵌入Excel工作表

时间:2013-03-20 17:22:17

标签: c# xml excel ms-office openxml

我有一个XML文件,其中包含多个计算值以及项目列表,例如:

<?xml version="1.0" encoding="utf-8"?>
<XmlContent>
  <Elements>
    <CreationDate>...</CreationDate>
    <Filename>....</Filename>
  </Elements>
  <PersonItems>
    <PersonItem>
      <FirstName>...</FirstName>
      <LastName>...</LastName>
      <Speed>...</Speed>
    </PersonItem>
    <PersonItem>
      <FirstName>...</FirstName>
      <LastName>...</LastName>
      <Speed>...</Speed>
    </PersonItem>
    [...]
  </PersonItems>
</XmlContent>

现在,应使用Excel 2007 OpenXmlFormat在Excel工作表中显示这些值。计算值应映射到工作表中的特定单元格,PersonItems应绑定到同一工作表中的表。

有没有办法将XML文件嵌入到工作表包中,并使用c#Package API作为CustomXmlPart将值绑定到相应的字段?

我在Channel9上找到了一个示例,其中Matthew Scott使用Word Content Control Toolkit与Word 2007类似。但是,这仅适用于Word。

Excel有类似内容吗?

或者是否有更好的方法来解决这个问题?

2 个答案:

答案 0 :(得分:2)

嗯,在研究和使用XML映射之后,我得出的结论是,没有“简单”的方法来实现我渴望做的事情。

在Excel应用程序中导入XML内容时,Excel会创建XML映射定义并将其存储在Package中。 XML内容本身将使用映射定义进行拆分,并合并到Excel文件的内容中。 这意味着,XML文件本身在导入后会立即消失,无法再使用。

但是,您可以在上面的链接中看到Word 2007+的故意情景。

也许这些信息对任何像我这样有类似任务的人都有帮助。

答案 1 :(得分:-2)

最简单的方法是解析xml文件(SAX,DOM),获取相应的属性和值,然后将它们写入excel文件。