如何使用 C# 和 OpenXml 读取 docx 文件中 table 单元格中的合并域内容

How can I read a mergefield content in table cell on a docx file using C# and OpenXml

我必须自动验证由另一个软件填充的多个 docx 中 tables 的内容,一些单元格包含 mergefield 文本类型,因此我无法访问这些单元格中的文本。 我在此处附加的代码是适用于文本类型单元格的代码:

Table table =  wordprocessingDocument .MainDocumentPart.Document.Body.Elements<Table>().First(); 
TableRow row = table.Elements<TableRow>().ElementAt(i);
TableCell cell = row.Elements<TableCell>().ElementAt(j);
Paragraph parag = cell.Elements<Paragraph>().First();
Run run = parag.Elements<Run>().First();
Text text = run.Elements<Text>().First();

谁能告诉我是否有办法从 table 单元格恢复合并字段的内容。

我终于找到了解决方法,显示文档的 xml 结构对我帮助很大。 通过使用 cell.InnerXml 我注意到 运行 标签存在于 SimpleField 标签中,所以我通过添加一行来调整我的代码。

Table table =  wordprocessingDocument.MainDocumentPart.Document.Body.Elements<Table>().First(); 
TableRow row = table.Elements<TableRow>().ElementAt(i);
TableCell cell = row.Elements<TableCell>().ElementAt(j);
Paragraph parag = cell.Elements<Paragraph>().First();
SimpleField cellfield = parag.Elements<SimpleField>().First();
Run run = cellfield .Elements<Run>().First();
Text text = run.Elements<Text>().First();