序列化存储在VARBINARY SQL 2005中的OpenXML部件元素

时间:2011-01-07 18:09:08

标签: xml-serialization openxml-sdk varbinary

我正在构建一个解决方案,允许用户从Word模板中挑选和选择部分,使用数据库中的内容填充这些部分,并组装1k 将新数据转换为新的.docx文档 到目前为止,我有成功的方法来定位内容并将内容移植到新文档中。我正在使用OpenXML SDK 2.0按样式和内容控件查找内容。我能够创建包含诸如Paragraphs,SdtBlocks,Run等元素的IEnumerable对象。

我需要找到一种优雅的方法来序列化这些元素块,这样我就可以将它们作为VARBINARY类型的整个块存储在SQL 2005数据库中。有人可以请我指出一个可行的例子来序列化这些OpenXML零件/元素吗?

1 个答案:

答案 0 :(得分:0)

我目前正在使用Excel,但我认为你的问题本质上是相似的。

从下面的代码我可以提取行的XML代码然后存储它。

private string GetContents(uint rowIndex)
{
    return GetExistingRow(rowIndex).OuterXml;
}

private Row GetExistingRow(uint rowIndex)
{
    return SheetData.
            Elements<Row>().
            Where(r => r.RowIndex == rowIndex).
            FirstOrDefault();
}

请注意SheetData对象被解压缩为

this.SheetData = WorksheetPart.Worksheet.GetFirstChild<SheetData>()

我希望这会有所帮助。