当前位置: 首页 > news >正文

利用 C# 实现 Word 文档多维度统计(字数、字符数、页数、段落数、行数)

在文档处理场景中,自动化统计Word文档的字数、字符数、段落数、行数和页数是常见的需求。本文将介绍如何使用免费的 Free Spire.Doc for .NET 库 快速实现这些功能,无需Microsoft Word依赖。

1. 前期准备

首先需要在项目中引入 Spire.Doc 组件。你可以通过 NuGet 包管理器来完成安装,具体操作:在 Visual Studio 的 “工具"→"NuGet 包管理器"→"管理解决方案的 NuGet 程序包” 中搜索 “Spire.Doc” 并安装。

或者在程序包管理器控制台中执行以下命令:

Install-Package Spire.Doc.Free

2. 核心实现代码

下面是实现 Word 文档统计功能的完整代码:

using Spire.Doc;
using System.IO;
using System.Text;namespace CountWordsCharactersEtcInWord
{internal class Program{static void Main(string[] args){// 加载Word文档Document document = new Document();document.LoadFromFile("溯源码.docx");// 获取 BuiltinDocumentProperties 对象BuiltinDocumentProperties properties = document.BuiltinDocumentProperties;// 获取文档中的字数、字符数、段落数、行数和页数int wordCount = properties.WordCount;int charCount = properties.CharCount;int charCountwithSpace = properties.CharCountWithSpace;int paraCount = properties.ParagraphCount;int lineCount = properties.LinesCount;int pageCount = properties.PageCount;// 将获取结果添加到 StringBuilderStringBuilder sb = new StringBuilder();sb.AppendLine("字数: " + wordCount);sb.AppendLine("字符数: " + charCount);sb.AppendLine("字符数(计空格): " + charCountwithSpace);sb.AppendLine("段落数: " + paraCount);sb.AppendLine("行数: " + lineCount);sb.AppendLine("页数: " + pageCount);// 导出为txt文档File.WriteAllText("统计结果.txt", sb.ToString());document.Close();}}
}

输出结果:
统计Word文档字数等

3. 代码功能解析

  • 文档加载:借助Document类的LoadFromFile方法来加载 Word 文档。
  • 文档属性获取BuiltinDocumentProperties 类提供了对 Word 文档内置属性的访问接口,利用它可以直接获取文档的各种统计信息。
  • 核心统计数据获取
    这里一次性获取了五项关键统计数据:
    • WordCount:统计文档中的单词数量
    • CharCount:统计文档中的字符总数(不包含空格)
    • CharCountWithSpace:统计文档中的字符总数(包含空格)
    • ParagraphCount:统计文档中的段落数量
    • LinesCount:统计文档中的行数
    • PageCount:统计文档的页数
  • 结果保存:使用 StringBuilder 高效构建结果文本,然后将统计结果保存为 txt 文件,方便后续查看与分析。

四、批量处理功能

可以结合 Directory 类实现对文件夹中多个 Word 文档的批量统计:

string[] files = Directory.GetFiles(@"D:\Word文档", "*.docx");
foreach(string file in files)
{// 加载并统计每个文档
}

五、注意事项

  1. Free Spire.Doc 免费版对文档处理有一定限制,如最多500 个段落,25 个表格。
  2. 统计结果是基于 Word 文档内置属性,这些属性通常在文档编辑过程中自动更新,但在某些特殊情况下可能需要手动更新文档属性。
  3. 对于包含大量表格、图表、或特殊符号的复杂文档,统计结果可能会有细微偏差。

-------------------📌 如果有任何疑问,可以在此处提交遇到的问题。-------------------

六、结论

通过上述代码和方法,我们可以快速实现 Word 文档的自动化统计分析,为文档管理、内容评估等工作提供有力支持。无论是个人用户处理少量文档,还是企业级应用的批量文档处理,这种方法都具有很高的实用价值。

http://www.lryc.cn/news/603177.html

相关文章:

  • macOS “Sploitlight“漏洞曝光:攻击者可窃取Apple Intelligence缓存数据
  • FreeRTOS在中断上下文中设置事件组,调度很慢的的解决方法
  • JavaWeb 入门:CSS 基础与实战详解(Java 开发者视角)
  • 如何在在NPM发布一个React组件
  • pycharm中安装pythonocc
  • 队列算法之【用队列实现栈】
  • 【Android】三种弹窗 Fragment弹窗管理
  • 人工智能技术革命:AI工具与大模型如何重塑开发者工作模式与行业格局
  • Sentinel实现限流和熔断降级
  • 四、Linux核心工具:Vim, 文件链接与SSH
  • 整车应用------后电驱总成
  • Java 大视界 -- Java 大数据在智能教育学习社区知识图谱构建与知识传播分析中的应用(370)
  • centos服务器安装minio
  • React 中获取当前路由信息
  • 低空经济应用-无人机拉格朗日粒子追踪技术
  • 界面控件Telerik UI for WPF 2025 Q2亮点 - 重要组件全新升级
  • SeeMoE:从零开始实现一个MoE视觉语言模型
  • CentOS Nginx 1.13.9 部署文档
  • 14 - 大语言模型 — 抽取式问答系统 “成长记”:靠 BERT 学本事,从文本里精准 “揪” 答案的全过程(呆瓜版-1号)
  • 分布式链路追踪详解
  • 【C++】第十九节—一文万字详解 | AVL树实现
  • 【C++篇】“内存泄露”的宝藏手段:智能指针
  • 【腾讯云】EdgeOne免费版实现网站加速与安全防护
  • thingsboard 自定义动作JS编程
  • uniapp 如果进入页面输入框自动聚焦,此时快速返回页面或者跳转到下一个页面,输入法顶上来的页面出现半屏的黑屏问题。
  • 在 Ubuntu 下测试单目与双目相机
  • 影翎Antigravity将发布全球首款全景无人机,8月开启公测招募
  • python案例:基于python 神经网络cnn和LDA主题分析的旅游景点满意度分析
  • JAVA第五学:方法的使用
  • 实时画面回传的开发复盘