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

C#實(shí)現(xiàn)高效讀取Word表格數(shù)據(jù)并導(dǎo)出為CSV/TXT

 更新時(shí)間:2026年03月29日 09:03:32   作者:Eiceblue  
在.NET開(kāi)發(fā)場(chǎng)景中,讀取 Word 文檔中的表格數(shù)據(jù)是辦公自動(dòng)化、數(shù)據(jù)導(dǎo)入、報(bào)表生成等業(yè)務(wù)的高頻需求,本文將詳細(xì)介紹如何用 C# 結(jié)合 Free Spire.Doc for .NET 庫(kù)實(shí)現(xiàn) Word 表格讀取,有需要的小伙伴可以了解下

前言

在.NET開(kāi)發(fā)場(chǎng)景中,讀取 Word 文檔中的表格數(shù)據(jù)是辦公自動(dòng)化、數(shù)據(jù)導(dǎo)入、報(bào)表生成等業(yè)務(wù)的高頻需求。相比于原生操作Office COM組件(兼容性差、依賴環(huán)境),F(xiàn)ree Spire.Doc for .NET 是一款輕量、免費(fèi)、無(wú)依賴的 Word 操作組件,完美支持 C# 讀取、解析 Word(.doc/.docx)格式的表格數(shù)據(jù)。

本文將詳細(xì)介紹如何用 C# 結(jié)合 Free Spire.Doc for .NET 庫(kù)實(shí)現(xiàn) Word 表格讀取,包含完整代碼、核心API解析等。

開(kāi)發(fā)環(huán)境準(zhǔn)備

1. 基礎(chǔ)環(huán)境要求

  • Visual Studio 2019+
  • .NET框架:.NET Framework 4.0+ / .NET 6/8(本文示例基于 .NET 6)
  • 支持 Word 格式:.doc / .docx

2. NuGet 安裝組件(極簡(jiǎn)操作)

  • 右鍵項(xiàng)目 → 管理 NuGet 程序包;
  • 搜索 FreeSpire.Doc;
  • 點(diǎn)擊安裝,自動(dòng)引用程序集。

命令行安裝:Install-Package FreeSpire.Doc

免費(fèi)版限制:?jiǎn)挝臋n最大500段落、25個(gè)表格,滿足絕大多數(shù)個(gè)人/小型項(xiàng)目需求。

核心 API 知識(shí)點(diǎn)(必看)

Free Spire.Doc 操作 Word 表格的核心對(duì)象,層級(jí)關(guān)系清晰:

類名作用
Document加載/操作整個(gè) Word 文檔
SectionWord 文檔的節(jié)(容器)
TableWord 表格對(duì)象
TableRow表格的行
TableCell表格的單元格
Paragraph.Text獲取單元格內(nèi)的純文本

讀取邏輯:加載文檔 → 遍歷文檔節(jié) → 遍歷節(jié)內(nèi)表格 → 遍歷行 → 遍歷單元格 → 提取文本。

C# 讀取 Word 表格完整代碼

以下代碼演示如何讀取 Word 文檔中所有表格的數(shù)據(jù),并輸出到控制臺(tái)。示例 Word 文檔包含兩個(gè)表格,如下圖:

場(chǎng)景1:讀取 Word 中所有表格數(shù)據(jù)

using Spire.Doc;
using System;
namespace ReadWordTable
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 初始化文檔對(duì)象,加載Word文件
            Document doc = new Document();
            doc.LoadFromFile(@"E:\表格.docx"); // 替換為你的Word路徑
            // 2. 遍歷Word文檔中的所有節(jié)
            foreach (Section section in doc.Sections)
            {
                // 3. 遍歷當(dāng)前節(jié)中的所有表格
                foreach (Table table in section.Tables)
                {
                    Console.WriteLine("===================== 讀取表格數(shù)據(jù) =====================");
                    // 4. 遍歷表格的每一行
                    foreach (TableRow row in table.Rows)
                    {
                        // 5. 遍歷當(dāng)前行的每一個(gè)單元格
                        foreach (TableCell cell in row.Cells)
                        {
                            // 6. 獲取單元格文本(去除空字符)
                            string cellText = cell.Paragraphs[0].Text.Trim();
                            Console.Write(cellText + "\t"); // 制表符分隔數(shù)據(jù)
                        }
                        Console.WriteLine(); // 換行
                    }
                }
            }
            // 釋放資源
            doc.Close();
            Console.ReadLine();
        }
    }
}

運(yùn)行代碼后,控制臺(tái)會(huì)按表格行列格式輸出所有數(shù)據(jù):

場(chǎng)景2:僅讀取指定表格數(shù)據(jù)(精準(zhǔn)讀?。?/h3>

也可以直接通過(guò)索引獲取指定表格,讀取其中數(shù)據(jù),效率更高:

// 獲取【第一個(gè)表格】(索引從0開(kāi)始)
Table targetTable = doc.Sections[0].Tables[0] as Table;

進(jìn)階:將 Word 表格數(shù)據(jù)寫入 TXT / CSV 文件

在實(shí)際開(kāi)發(fā)中,讀取 Word 表格后需要將數(shù)據(jù)持久化保存,最常用的是導(dǎo)出為 TXT 純文本CSV 文件

必備命名空間:操作文件需要引入 System.IO,在代碼頂部添加:

using System.IO;

示例 1:導(dǎo)出 Word 表格為純 TXT 文本

特點(diǎn):純文本格式,用制表符分隔數(shù)據(jù),可讀性強(qiáng),適合簡(jiǎn)單存儲(chǔ)。

using System;
using System.IO;
using Spire.Doc;

namespace ReadWordToTxt
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 加載Word文檔
            Document doc = new Document();
            doc.LoadFromFile(@"E:\表格.docx");

            // 2. 設(shè)置TXT保存路徑
            string txtPath = @"Word表格數(shù)據(jù).txt";

            // 3. 創(chuàng)建文件流,寫入數(shù)據(jù)
            using (StreamWriter sw = new StreamWriter(txtPath, false, System.Text.Encoding.UTF8))
            {
                // 遍歷所有節(jié)、表格、行、單元格
                foreach (Section section in doc.Sections)
                {
                    foreach (Table table in section.Tables)
                    {
                        sw.WriteLine("===================== 表格數(shù)據(jù) =====================");
                        foreach (TableRow row in table.Rows)
                        {
                            string rowData = "";
                            foreach (TableCell cell in row.Cells)
                            {
                                // 拼接單元格文本,制表符分隔
                                rowData += cell.Paragraphs[0].Text.Trim() + "\t";
                            }
                            // 寫入一行數(shù)據(jù)
                            sw.WriteLine(rowData);
                        }
                    }
                }
            }

            // 4. 釋放資源
            doc.Close();
            Console.WriteLine($"數(shù)據(jù)已成功寫入:{txtPath}");
            Console.ReadLine();
        }
    }
}

生成的Word表格數(shù)據(jù).txt文件:

示例 2:導(dǎo)出 Word 表格為 CSV 文件(推薦)

亮點(diǎn)匯總:

  • 自動(dòng)轉(zhuǎn)義單元格逗號(hào),避免格式錯(cuò)亂
  • UTF-8 編碼,徹底解決 Excel 中文亂碼
  • 直接雙擊可用 WPS/Excel 打開(kāi)做數(shù)據(jù)分析
using System;
using System.IO;
using Spire.Doc;

namespace ReadWordToCsv
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 加載Word文檔
            Document doc = new Document();
            doc.LoadFromFile(@"E:\表格.docx");

            // 2. 設(shè)置CSV保存路徑
            string csvPath = @"Word表格數(shù)據(jù).csv";

            // 3. 寫入CSV文件(UTF-8編碼,解決中文亂碼)
            using (StreamWriter sw = new StreamWriter(csvPath, false, System.Text.Encoding.UTF8))
            {
                foreach (Section section in doc.Sections)
                {
                    foreach (Table table in section.Tables)
                    {
                        foreach (TableRow row in table.Rows)
                        {
                            string rowData = "";
                            foreach (TableCell cell in row.Cells)
                            {
                                string cellText = cell.Paragraphs[0].Text.Trim();
                                // CSV格式優(yōu)化:文本加雙引號(hào),避免單元格內(nèi)逗號(hào)導(dǎo)致格式錯(cuò)亂
                                rowData += $"\"{cellText}\",";
                            }
                            // 去除行尾多余逗號(hào),寫入文件
                            sw.WriteLine(rowData.TrimEnd(','));
                        }
                        // 表格之間空行分隔
                        sw.WriteLine();
                    }
                }
            }

            // 4. 釋放資源
            doc.Close();
            Console.WriteLine($"數(shù)據(jù)已成功寫入:{csvPath}");
            Console.ReadLine();
        }
    }
}

生成的Word表格數(shù)據(jù).csv文件,用 Excel 打開(kāi)可直接顯示規(guī)整表格:

至此,我們完成了一套完整的 Word 表格數(shù)據(jù)讀取方案。從文檔加載、表格遍歷到數(shù)據(jù)導(dǎo)出,整個(gè)過(guò)程并不復(fù)雜,關(guān)鍵點(diǎn)包含:

  • 對(duì)象模型清晰Document、Section、Table、TableRow、TableCell 層級(jí)分明,按序遍歷即可拿到所需內(nèi)容;
  • 代碼簡(jiǎn)潔直接:無(wú)論是控制臺(tái)輸出還是導(dǎo)出 TXT / CSV 文件,核心代碼都在 20 行以內(nèi),易于理解和維護(hù);
  • 導(dǎo)出格式靈活:TXT 適合快速查看,CSV 則更適合數(shù)據(jù)交換與后續(xù)分析,兩者都能滿足日常開(kāi)發(fā)需求。

這種方式最大的優(yōu)勢(shì)在于輕量、無(wú)環(huán)境依賴,不需要在服務(wù)器或客戶端安裝 Office 軟件,也不涉及 COM 組件的繁瑣配置,部署和維護(hù)都簡(jiǎn)單很多。對(duì)于大多數(shù)需要處理 Word 表格的業(yè)務(wù)場(chǎng)景——比如數(shù)據(jù)導(dǎo)入、報(bào)表自動(dòng)化、內(nèi)容提取等——這套方案足以覆蓋常見(jiàn)需求。

如果你在實(shí)際項(xiàng)目中遇到更復(fù)雜的表格結(jié)構(gòu)(如嵌套表格、不規(guī)則合并、單元格內(nèi)混合內(nèi)容等),可以在現(xiàn)有邏輯基礎(chǔ)上進(jìn)一步擴(kuò)展。希望這篇文章能幫你快速上手,少走一些彎路。

到此這篇關(guān)于C#實(shí)現(xiàn)高效讀取Word表格數(shù)據(jù)并導(dǎo)出為CSV/TXT的文章就介紹到這了,更多相關(guān)C#讀取Word表格數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# ?的使用小結(jié)

    C# ?的使用小結(jié)

    本文介紹了C#中可空類型標(biāo)記符(?)及其相關(guān)運(yùn)算符的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • silverlight實(shí)現(xiàn)圖片局部放大效果的方法

    silverlight實(shí)現(xiàn)圖片局部放大效果的方法

    這篇文章主要介紹了silverlight實(shí)現(xiàn)圖片局部放大效果的方法,結(jié)合實(shí)例形式分析了silverlight針對(duì)圖片屬性的相關(guān)操作技巧,需要的朋友可以參考下
    2017-03-03
  • C#重寫DataGridView

    C#重寫DataGridView

    這篇文章主要為大家詳細(xì)介紹了C#重寫DataGridView的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-05-05
  • C# task應(yīng)用實(shí)例詳解

    C# task應(yīng)用實(shí)例詳解

    這篇文章主要介紹了如何在C#中一些應(yīng)用task的實(shí)例,簡(jiǎn)單易懂的代碼能更好的幫你學(xué)習(xí),有興趣的朋友可以了解下
    2020-05-05
  • 淺析C#數(shù)據(jù)類型轉(zhuǎn)換的幾種形式

    淺析C#數(shù)據(jù)類型轉(zhuǎn)換的幾種形式

    本篇文章是對(duì)C#中數(shù)據(jù)類型轉(zhuǎn)換的幾種形式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List

    c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List

    這篇文章主要介紹了c#使用linq把多列的List轉(zhuǎn)化為只有指定列的List,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#如何控制IIS動(dòng)態(tài)添加刪除網(wǎng)站詳解

    C#如何控制IIS動(dòng)態(tài)添加刪除網(wǎng)站詳解

    這篇文章主要給大家介紹了關(guān)于C#如何控制IIS動(dòng)態(tài)添加刪除網(wǎng)站的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • C#?NLua?Winform實(shí)現(xiàn)熱更新的項(xiàng)目實(shí)踐

    C#?NLua?Winform實(shí)現(xiàn)熱更新的項(xiàng)目實(shí)踐

    本文介紹了在.NET應(yīng)用中使用NLua庫(kù)嵌入Lua腳本,實(shí)現(xiàn)動(dòng)態(tài)邏輯和熱更新功能,包括創(chuàng)建項(xiàng)目、設(shè)置公共數(shù)據(jù)、Lua腳本交互以及熱更新的具體實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2025-11-11
  • c#之事件用法

    c#之事件用法

    這篇文章介紹了c#中事件的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#實(shí)現(xiàn)一鍵清空控件值的示例代碼

    C#實(shí)現(xiàn)一鍵清空控件值的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#語(yǔ)言實(shí)現(xiàn)一鍵清空控件值的功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定幫助,需要的可以參考一下
    2022-09-09

最新評(píng)論

安康市| 荆门市| 高邮市| 义马市| 宾阳县| 漳浦县| 武定县| 锡林郭勒盟| 高邑县| 台前县| 前郭尔| 奈曼旗| 阿拉善左旗| 雷波县| 巨鹿县| 班玛县| 育儿| 天气| 石屏县| 淳化县| 永德县| 揭东县| 本溪市| 玛沁县| 大新县| 虞城县| 东光县| 彭山县| 鹤岗市| 永靖县| 土默特左旗| 同心县| 遂平县| 渭源县| 兰西县| 五华县| 聂荣县| 乌海市| 洪江市| 崇义县| 蒙山县|