最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#結(jié)合Spire.Doc實現(xiàn)自動化提取Word表格數(shù)據(jù)

 更新時間:2025年11月11日 10:10:59   作者:咕白m625  
在日常辦公和開發(fā)中,我們經(jīng)常需要從Word文檔中提取表格數(shù)據(jù)進(jìn)行二次處理,下面我們就來看看C#如何結(jié)合Spire.Doc庫實現(xiàn)Word表格的提取并將提取的內(nèi)容保存為文本文件吧

在日常辦公和開發(fā)中,我們經(jīng)常需要從Word文檔中提取表格數(shù)據(jù)進(jìn)行二次處理(如導(dǎo)入數(shù)據(jù)庫、數(shù)據(jù)分析等)。本文將介紹如何使用C#結(jié)合Spire.Doc庫實現(xiàn)Word表格的提取,并將提取的內(nèi)容保存為文本文件。

工具與環(huán)境準(zhǔn)備

要實現(xiàn)Word表格提取,我們需要以下工具和組件:

  • 開發(fā)環(huán)境:Visual Studio(或其他 C# 開發(fā)工具)
  • .NET Framework/.NET Core(本文代碼兼容主流版本)
  • 第三方庫:Spire.Doc(用于解析 Word 文檔結(jié)構(gòu),處理表格數(shù)據(jù))

Spire.Doc 是一個功能強(qiáng)大的Word文檔處理庫,支持讀取、編輯、生成Word文檔,尤其對表格、段落等元素的處理非常便捷。我們可以通過 NuGet 包管理器安裝它:在項目中右鍵“管理NuGet包”,搜索 “Spire.Doc” 并安裝。

如何通過 C# 提取 Word 表格

實現(xiàn)思路

從Word中提取表格的核心思路是“逐層解析文檔結(jié)構(gòu)”:

  • 加載Word文檔,獲取文檔對象
  • 遍歷文檔中的“節(jié)(Section)”(Word文檔的基本結(jié)構(gòu)單位)
  • 在每個節(jié)中獲取表格集合,遍歷所有表格
  • 對每個表格,逐行、逐單元格提取文本內(nèi)容
  • 將提取的表格數(shù)據(jù)按格式保存到文本文件

完整代碼

以下是提取Word表格的完整代碼,我們將逐步解析其核心邏輯:

using?Spire.Doc;
using?Spire.Doc.Collections;
using?Spire.Doc.Interface;
using?System.IO;
using?System.Text;

namespace?ExtractWordTable
{
????internal?class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????//?創(chuàng)建文檔對象
????????????Document?doc?=?new?Document();
????????????//?加載Word文檔
????????????doc.LoadFromFile("Tables.docx");

????????????//?遍歷文檔中的所有節(jié)
????????????for?(int?sectionIndex?=?0;?sectionIndex?<?doc.Sections.Count;?sectionIndex++)
????????????{
????????????????Section?section?=?doc.Sections[sectionIndex];

????????????????//?獲取當(dāng)前節(jié)中的所有表格
????????????????TableCollection?tables?=?section.Tables;

????????????????//?遍歷當(dāng)前節(jié)中的所有表格
????????????????for?(int?tableIndex?=?0;?tableIndex?<?tables.Count;?tableIndex++)
????????????????{
????????????????????ITable?table?=?tables[tableIndex];

????????????????????//?用于存儲當(dāng)前表格的所有數(shù)據(jù)
????????????????????string?tableData?=?"";

????????????????????//?遍歷表格中的所有行
????????????????????for?(int?rowIndex?=?0;?rowIndex?<?table.Rows.Count;?rowIndex++)
????????????????????{
????????????????????????TableRow?row?=?table.Rows[rowIndex];
????????????????????????//?遍歷行中的所有單元格
????????????????????????for?(int?cellIndex?=?0;?cellIndex?<?row.Cells.Count;?cellIndex++)
????????????????????????{
????????????????????????????TableCell?cell?=?row.Cells[cellIndex];

????????????????????????????//?提取單元格文本(單元格可能包含多個段落)
????????????????????????????string?cellText?=?"";
????????????????????????????for?(int?paraIndex?=?0;?paraIndex?<?cell.Paragraphs.Count;?paraIndex++)
????????????????????????????{
????????????????????????????????cellText?+=?(cell.Paragraphs[paraIndex].Text.Trim()?+?"?");
????????????????????????????}

????????????????????????????//?拼接單元格文本,用制表符分隔不同單元格
????????????????????????????tableData?+=?cellText.Trim();
????????????????????????????if?(cellIndex?<?row.Cells.Count?-?1)
????????????????????????????{
????????????????????????????????tableData?+=?"\t";
????????????????????????????}
????????????????????????}

????????????????????????//?行結(jié)束后換行
????????????????????????tableData?+=?"\n";
????????????????????}

????????????????????//?保存表格數(shù)據(jù)到文本文件)
????????????????????string?filePath?=?Path.Combine("Tables",?$"Section{sectionIndex?+?1}_Table{tableIndex?+?1}.txt");
????????????????????File.WriteAllText(filePath,?tableData,?Encoding.UTF8);
????????????????}
????????????}

????????????doc.Close();
????????}
????}
}

代碼核心邏輯解析

1. 遍歷文檔結(jié)構(gòu)

Word 文檔的結(jié)構(gòu)是“文檔(Document)→ 節(jié)(Section)→ 表格(Table)→ 行(Row)→ 單元格(Cell)”,因此我們需要逐層遍歷:

  • 節(jié)(Section) :一個Word文檔可以包含多個節(jié)(如不同的頁面設(shè)置、分欄等),通過doc.Sections獲取所有節(jié)。
  • 表格(Table) :每個節(jié)中可能包含多個表格,通過section.Tables獲取當(dāng)前節(jié)的表格集合。

2. 提取單元格文本

單元格(TableCell)中的內(nèi)容可能包含多個段落(Paragraph),因此需要遍歷所有段落并拼接文本:

string?cellText?=?"";
for?(int?paraIndex?=?0;?paraIndex?<?cell.Paragraphs.Count;?paraIndex++)
{
????cellText?+=?(cell.Paragraphs[paraIndex].Text.Trim()?+?"?");
}

使用 Trim() 去除文本前后的空白,避免多余空格影響格式。

實用擴(kuò)展方向

基于本文代碼,可進(jìn)一步擴(kuò)展功能,滿足更多場景需求:

  • 將提取的表格數(shù)據(jù)導(dǎo)出為 Excel 文件(結(jié)合 Spire.XLS 庫)
  • 對提取的文本進(jìn)行清洗(如去除特殊符號、格式轉(zhuǎn)換)
  • 批量處理多個Word文檔(遍歷文件夾中的所有.docx文件)

通過上述方法,我們可以高效地從 Word 文檔中提取表格數(shù)據(jù),為后續(xù)的數(shù)據(jù)處理提供便利。相比原生 Office Interop,Spire.Doc 無需依賴 Office 客戶端,運行更輕量化;代碼邏輯清晰,可直接復(fù)用或二次開發(fā)。

到此這篇關(guān)于C#結(jié)合Spire.Doc實現(xiàn)自動化提取Word表格數(shù)據(jù)的文章就介紹到這了,更多相關(guān)C#提取Word表格數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c#版json數(shù)據(jù)解析示例分享

    c#版json數(shù)據(jù)解析示例分享

    JSON(全稱為JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它是基于JavaScript語法標(biāo)準(zhǔn)的一個子集。 JSON采用完全獨立于語言的文本格式,可以很容易在各種網(wǎng)絡(luò)、平臺和程序之間傳輸。JSON的語法很簡單,易于人閱讀和編寫,同時也易于機(jī)器解析和生成
    2014-03-03
  • 使用C#代碼在Excel中獲取工作表名稱的操作指南

    使用C#代碼在Excel中獲取工作表名稱的操作指南

    在 Excel 中,工作表名稱可以作為工作簿內(nèi)容的一種元數(shù)據(jù),通過獲取這些名稱的列表,可以大致了解每個工作表的用途,本文將介紹如何使用 Spire.XLS for .NET 在 C# 中獲取 Excel 工作表名稱,需要的朋友可以參考下
    2026-01-01
  • Unity實現(xiàn)3D射箭小游戲

    Unity實現(xiàn)3D射箭小游戲

    這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)3D射箭小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • WPF實現(xiàn)雷達(dá)圖(仿英雄聯(lián)盟)的示例代碼

    WPF實現(xiàn)雷達(dá)圖(仿英雄聯(lián)盟)的示例代碼

    這篇文章主要介紹了如何利用WPF實現(xiàn)雷達(dá)圖(仿英雄聯(lián)盟)的繪制,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-07-07
  • 深入理解C#表達(dá)式樹的使用

    深入理解C#表達(dá)式樹的使用

    表達(dá)式樹是C#編程語言中一個強(qiáng)大的特性,本文將深入探討表達(dá)式樹的基本概念、創(chuàng)建方法、節(jié)點類型、遍歷技巧以及在C#中的應(yīng)用示例,感興趣的可以了解一下
    2024-03-03
  • c#使用ManagedWifi查看當(dāng)前Wifi信號并選擇wifi的示例

    c#使用ManagedWifi查看當(dāng)前Wifi信號并選擇wifi的示例

    這篇文章主要介紹了c#使用ManagedWifi查看當(dāng)前Wifi信號并選擇wifi的示例,需要的朋友可以參考下
    2014-04-04
  • 自定義WPF分頁控件的全過程記錄

    自定義WPF分頁控件的全過程記錄

    接觸WPF也有一段時間了,最近遇到了一個自定義分頁控件的功能,感覺可以分享下面,所以這篇文章主要介紹了自定義WPF分頁控件的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • C#如何實現(xiàn)Excel中圖片的提取與本地保存方法

    C#如何實現(xiàn)Excel中圖片的提取與本地保存方法

    這篇文章主要介紹了C#實現(xiàn)Excel中圖片的提取與本地保存方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • C#監(jiān)控文件夾變化的方法

    C#監(jiān)控文件夾變化的方法

    這篇文章主要介紹了C#監(jiān)控文件夾變化的方法,通過FileSystemWatcher類的方法來實現(xiàn)對文件夾的監(jiān)控,是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • C#代碼實現(xiàn)將Excel中的圖表轉(zhuǎn)換為圖片

    C#代碼實現(xiàn)將Excel中的圖表轉(zhuǎn)換為圖片

    圖表通常用于 Microsoft Excel 文件中,以可視化展示數(shù)值數(shù)據(jù),本文將演示如何使用 Spire.XLS for .NET,通過 C# 和 VB.NET 將 Excel 中的圖表轉(zhuǎn)換為圖片,感興趣的小伙伴可以了解下
    2025-12-12

最新評論

固原市| 哈尔滨市| 连城县| 江川县| 彩票| 巴彦淖尔市| 峨眉山市| 杭锦旗| 县级市| 饶阳县| 扎赉特旗| 大同县| 靖州| 墨脱县| 汝阳县| 榆社县| 思南县| 蚌埠市| 米泉市| 新乐市| 海淀区| 十堰市| 沿河| 濮阳市| 吐鲁番市| 新蔡县| 庄浪县| 丰顺县| 临城县| 定远县| 石阡县| 连南| 溧阳市| 罗山县| 吉木萨尔县| 黔江区| 花莲市| 怀宁县| 陆河县| 营山县| 拜城县|