学习C#调用OpenXml操作word文档的基本用法(10:读取其它文档属性)

  上一篇文章中介绍的CoreFilePropertiesPart类保存Word文档的核心属性,除此之外,ExtendedFilePropertiesPart类保存Word文档的扩展属性,CustomFilePropertiesPart类保存自定义属性,本文学习后面2种类型的数据读取方式。

读取扩展属性

  Word文档的扩展属性值具体保存在ExtendedFilePropertiesPart类的Properties属性中,后者类型为DocumentFormat.OpenXml.ExtendedProperties.Properties,其主要属性如下表所示(主要展示word文档的扩展属性,其它文档格式的扩展属性没有列出,有需要的请在参考文献3中查询):

序号 属性名称 说明
1 Application 程序名称
2 ApplicationVersion 程序版本号
3 Company 公司名称
4 Characters 字符数
5 CharactersWithSpaces 字符数(含空格)
6 DigitalSignature 数字签名
7 DocumentSecurity 文档安全性
8 HyperlinkList 超链接列表
9 Lines 行数
10 LinksUpToDate 是否最新链接
11 Manager 经理
12 Pages 总页数
13 Paragraphs 段落数
14 Words 字数
15 ScaleCrop 比例
16 Template 文档模板名称
17 TotalTime 总编辑时间

  扩展属性读取示例及word文档中的扩展属性截图如下所示:

csharp 复制代码
using (WordprocessingDocument document = WordprocessingDocument.Open(txtFilePath.Text, false))
{
    StringBuilder sbInfo=new StringBuilder();
    ExtendedFilePropertiesPart ePart = document.ExtendedFilePropertiesPart;
    if(ePart != null && ePart.Properties!=null)
    {
        sbInfo.AppendLine("文档模板名称:" + ePart.Properties.Template.InnerText);
		...
		...
    }
}
读取自定义属性

  Word文档的自定义属性值具体保存在CustomFilePropertiesPart类的Properties属性中,后者类型为DocumentFormat.OpenXml.CustomProperties.Properties,扩展属性值列表通过调用Elements<CustomDocumentProperty>函数获取,CustomDocumentProperty类最重要的字段是自定义属性名称Name、自定义属性值InnerText。
  通常Word文档中没有自定义属性,可以打开word文档,点击"文件"菜单下的信息子菜单,然后点击右侧的属性文本,在弹出的属性窗口中切换到自定义页签以设置自定义名称及值。

  下面的代码用于读取Word文档中的自定义属性列表:

csharp 复制代码
StringBuilder sbInfo=new StringBuilder();
CustomFilePropertiesPart cPart = document.CustomFilePropertiesPart;
if(cPart != null && cPart.Properties!=null)
{
    foreach (CustomDocumentProperty property in cPart.Properties.Elements<CustomDocumentProperty>())
    {
        if (string.IsNullOrEmpty(property.Name))
        {
            continue;
        }
        
        sbInfo.AppendLine($"{property.Name}:{property.InnerText}");
    }

    MessageBox.Show(sbInfo.ToString());
}

参考文献

1https://github.com/dotnet/Open-XML-SDK

2https://learn.microsoft.com/zh-cn/office/open-xml/open-xml-sdk

3https://learn.microsoft.com/zh-cn/dotnet/api/documentformat.openxml.wordprocessing.style?view=openxml-3.0.1

4https://blog.csdn.net/i042416/article/details/126228816

相关推荐
Am-Chestnuts39 分钟前
豆包表格复制到 Word 后错列,先保留 Markdown 再转换
word
DS随心转APP3 小时前
deepseek生成的word怎么下载 AI导出鸭全平台方案技术深度测评
人工智能·ai·chatgpt·word·deepseek·ai导出鸭
DS随心转小程序6 小时前
AI 导出鸭重构转化链路,全面优化腾讯元宝输出 word 文档办公效率
人工智能·重构·aigc·word·豆包·deepseek·ai导出鸭
皮皮虾❀8 小时前
千问办公+Office一站式生成+原生编辑一体化实战:从“AI生成文档格式错乱”到“PPT/Word/Excel直接出成品可商用”的交付型AI落地路径
人工智能·word·powerpoint
AI导出鸭9 小时前
怎么让豆包做表格?AI导出鸭苹果版将豆包输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格。
人工智能·chatgpt·word·excel·ai导出鸭
yuhulkjv33517 小时前
Claude表格复制到word不再崩溃,AI导出鸭批量导出+格式无损一键搞定
人工智能·ai·c#·word·ai导出鸭
DS随心转小程序19 小时前
ChatGPT 文字怎么转为 word?解析各类转换方案,AI 导出鸭成为高效文档转换新选择
人工智能·chatgpt·word·豆包·deepseek·ai导出鸭
DS随心转小程序1 天前
借助 AI 导出鸭简化各类办公场景下文心输出 word 文档全流程操作
人工智能·aigc·word·豆包·deepseek·ai导出鸭
AI刀刀1 天前
腾讯元宝粘贴到 word 格式混乱,AI 导出鸭一键规整排版
人工智能·c#·word·ai导出鸭
glustful1 天前
Word在线编辑技术体系全景深度分析
word·在线文档·docx