使用Openxml读取word文档中的文本和格式

时间:2017-12-12 05:24:15

标签: c# openxml docx

我一直试图解决这个问题,但似乎我真的需要帮助。

我正在使用OpenXml阅读Word文档。

我需要word文档中的文字及其格式。

我有这个代码来获取文本和属性

WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(stream, true);

            Body body = wordprocessingDocument.MainDocumentPart.Document.Body;
            foreach (var item in body)
            {
                //Console.WriteLine(">>text: " + item.InnerText);
                foreach (var tt in item.GetAttributes())
                {
                    Console.WriteLine(tt.LocalName + " : " + tt.Value);
                }

            }

上面代码的输出类似于

rsidR : 0067182C
rsidP : 002A2C9A
rsidRDefault : 004052D2
rsidR : 0067182C
rsidRDefault : 004052D2
rsidR : 0067182C
rsidSect : 0067182C

我需要的是word文档中每个文本中使用的格式。那是什么意思

这是我的示例Word文档的屏幕截图。我可以像Bold一样检索它。字体名称。字体大小?

enter image description here

此致 鲍勃

2 个答案:

答案 0 :(得分:0)

您可以使用Descendants节点在其上进行循环,然后可以获取所需的内容。

让我知道您是否仍然无法做到这一点。

谢谢

答案 1 :(得分:0)

是的。您可以获取每个文本的格式信息。

我假设您已完成所有任务。每次运行都有runProperty,其中包含所有格式信息。

因此遍历每次运行并获得如下格式。

bool Border = run.RunProperties.Border != null,
bool Bold = run.RunProperties.Bold != null,

希望这会有所帮助。 !!