利用C#實(shí)現(xiàn)Word文檔多維度信息統(tǒng)計(jì)
在文檔處理場(chǎng)景中,自動(dòng)化統(tǒng)計(jì)Word文檔的字?jǐn)?shù)、字符數(shù)、段落數(shù)、行數(shù)和頁數(shù)是常見的需求。本文將介紹如何使用免費(fèi)的 Free Spire.Doc for .NET 庫 快速實(shí)現(xiàn)這些功能,無需Microsoft Word依賴。
1. 前期準(zhǔn)備
首先需要在項(xiàng)目中引入 Spire.Doc 組件。你可以通過 NuGet 包管理器來完成安裝,具體操作:在 Visual Studio 的 “工具"→"NuGet 包管理器"→"管理解決方案的 NuGet 程序包” 中搜索 “Spire.Doc” 并安裝。
或者在程序包管理器控制臺(tái)中執(zhí)行以下命令:
Install-Package Spire.Doc.Free
2. 核心實(shí)現(xiàn)代碼
下面是實(shí)現(xiàn) Word 文檔統(tǒng)計(jì)功能的完整代碼:
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 對(duì)象
BuiltinDocumentProperties properties = document.BuiltinDocumentProperties;
// 獲取文檔中的字?jǐn)?shù)、字符數(shù)、段落數(shù)、行數(shù)和頁數(shù)
int wordCount = properties.WordCount;
int charCount = properties.CharCount;
int charCountwithSpace = properties.CharCountWithSpace;
int paraCount = properties.ParagraphCount;
int lineCount = properties.LinesCount;
int pageCount = properties.PageCount;
// 將獲取結(jié)果添加到 StringBuilder
StringBuilder sb = new StringBuilder();
sb.AppendLine("字?jǐn)?shù): " + wordCount);
sb.AppendLine("字符數(shù): " + charCount);
sb.AppendLine("字符數(shù)(計(jì)空格): " + charCountwithSpace);
sb.AppendLine("段落數(shù): " + paraCount);
sb.AppendLine("行數(shù): " + lineCount);
sb.AppendLine("頁數(shù): " + pageCount);
// 導(dǎo)出為txt文檔
File.WriteAllText("統(tǒng)計(jì)結(jié)果.txt", sb.ToString());
document.Close();
}
}
}
輸出結(jié)果:

3. 代碼功能解析
文檔加載:借助Document類的LoadFromFile方法來加載 Word 文檔。
文檔屬性獲取:BuiltinDocumentProperties 類提供了對(duì) Word 文檔內(nèi)置屬性的訪問接口,利用它可以直接獲取文檔的各種統(tǒng)計(jì)信息。
核心統(tǒng)計(jì)數(shù)據(jù)獲取
這里一次性獲取了五項(xiàng)關(guān)鍵統(tǒng)計(jì)數(shù)據(jù):
WordCount:統(tǒng)計(jì)文檔中的單詞數(shù)量CharCount:統(tǒng)計(jì)文檔中的字符總數(shù)(不包含空格)CharCountWithSpace:統(tǒng)計(jì)文檔中的字符總數(shù)(包含空格)ParagraphCount:統(tǒng)計(jì)文檔中的段落數(shù)量LinesCount:統(tǒng)計(jì)文檔中的行數(shù)PageCount:統(tǒng)計(jì)文檔的頁數(shù)
結(jié)果保存:使用 StringBuilder 高效構(gòu)建結(jié)果文本,然后將統(tǒng)計(jì)結(jié)果保存為 txt 文件,方便后續(xù)查看與分析。
4. 批量處理功能
可以結(jié)合 Directory 類實(shí)現(xiàn)對(duì)文件夾中多個(gè) Word 文檔的批量統(tǒng)計(jì):
string[] files = Directory.GetFiles(@"D:\Word文檔", "*.docx");
foreach(string file in files)
{
// 加載并統(tǒng)計(jì)每個(gè)文檔
}
5. 注意事項(xiàng)
Free Spire.Doc 免費(fèi)版對(duì)文檔處理有一定限制,如最多500 個(gè)段落,25 個(gè)表格。
統(tǒng)計(jì)結(jié)果是基于 Word 文檔內(nèi)置屬性,這些屬性通常在文檔編輯過程中自動(dòng)更新,但在某些特殊情況下可能需要手動(dòng)更新文檔屬性。
對(duì)于包含大量表格、圖表、或特殊符號(hào)的復(fù)雜文檔,統(tǒng)計(jì)結(jié)果可能會(huì)有細(xì)微偏差。
6. 結(jié)論
通過上述代碼和方法,我們可以快速實(shí)現(xiàn) Word 文檔的自動(dòng)化統(tǒng)計(jì)分析,為文檔管理、內(nèi)容評(píng)估等工作提供有力支持。無論是個(gè)人用戶處理少量文檔,還是企業(yè)級(jí)應(yīng)用的批量文檔處理,這種方法都具有很高的實(shí)用價(jià)值。
到此這篇關(guān)于利用C#實(shí)現(xiàn)Word文檔多維度信息統(tǒng)計(jì)的文章就介紹到這了,更多相關(guān)C#統(tǒng)計(jì)Word信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#實(shí)現(xiàn)適配器模式的項(xiàng)目實(shí)踐
適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另一個(gè)接口,使得原本由于接口不兼容而不能一起工作的那些類可以一起工作,本文主要介紹了c#實(shí)現(xiàn)適配器模式的項(xiàng)目實(shí)踐,感興趣的可以一起來了解一下2023-08-08
WPF實(shí)現(xiàn)動(dòng)畫效果(七)之演示圖板
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫效果之演示圖板,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C#創(chuàng)建磁性窗體的實(shí)現(xiàn)方法
經(jīng)常會(huì)遇到一種情況,即當(dāng)拖動(dòng)一個(gè)窗體(主窗體)時(shí),其他窗體(子窗體)隨著該窗體移動(dòng),當(dāng)拖動(dòng)子窗體時(shí),其他窗體將不跟隨移動(dòng),這就是磁性窗體,所以本文給大家介紹了C#創(chuàng)建磁性窗體的實(shí)現(xiàn)方法,需要的朋友可以參考下2024-04-04
C#獲取DataGridView所有的列表名的詳細(xì)方法
本文介紹了C#中獲取DataGridView所有列名的方法,重點(diǎn)講解遍歷Columns集合及相關(guān)屬性(列名、標(biāo)題、類型),并給出源碼及開發(fā)注意事項(xiàng),如空引用檢查、性能優(yōu)化和運(yùn)行時(shí)列處理,需要的朋友可以參考下2025-10-10

