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

C#實(shí)現(xiàn)高效讀取CSV文件的完整指南

 更新時(shí)間:2025年12月07日 09:05:13   作者:Eiceblue  
CSV文件作為一種輕量級(jí)的數(shù)據(jù)交換格式,在數(shù)據(jù)處理和導(dǎo)入導(dǎo)出場(chǎng)景中廣泛應(yīng)用,下面我們就來看看如何使用Free Spire.XLS for .NET輕松處理 CSV吧

CSV(逗號(hào)分隔值)文件作為一種輕量級(jí)的數(shù)據(jù)交換格式,在數(shù)據(jù)處理和導(dǎo)入導(dǎo)出場(chǎng)景中廣泛應(yīng)用。雖然 .NET Framework 提供了多種原生處理 CSV 的方式,但使用專門的庫可以簡(jiǎn)化代碼并提高開發(fā)效率。Free Spire.XLS for .NET 是一個(gè)強(qiáng)大的免費(fèi)庫,不僅支持 Excel 文件操作,還能輕松處理 CSV 文件。

一、基本 CSV 讀取操作

1. 準(zhǔn)備 CSV 文件

假設(shè)我們有 students.csv 文件,內(nèi)容如下:

學(xué)號(hào),姓名,語文,數(shù)學(xué),英語
1001,張三,85,90,88
1002,李四,92,85,90
1003,王五,78,88,85

2. 安裝 Free Spire.XLS

推薦通過 NuGet 包管理器安裝:

Install-Package FreeSpire.XLS

或在 Visual Studio 中右鍵項(xiàng)目 → 管理 NuGet 程序包 → 搜索 FreeSpire.XLS → 安裝。

需注意,免費(fèi)版有篇幅限制,適用于個(gè)人或小型項(xiàng)目

3. C# 示例代碼:讀取整個(gè) CSV 文件

using Spire.Xls;
class Program
{
    static void Main(string[] args)
    {
        // 創(chuàng)建 Workbook 實(shí)例
        Workbook workbook = new Workbook();

        // 加載 CSV 文件
        // 參數(shù)說明:文件名,分隔符,起始行,起始列
        workbook.LoadFromFile("student.csv", ",", 1, 1);

        // 獲取第一個(gè)工作表
        Worksheet sheet = workbook.Worksheets[0];

        // 獲取使用的行數(shù)和列數(shù)
        int rowCount = sheet.LastRow;
        int colCount = sheet.LastColumn;

        Console.WriteLine($"文件包含 {rowCount} 行,{colCount} 列數(shù)據(jù)");
        Console.WriteLine("==============================");

        // 遍歷所有數(shù)據(jù)并輸出
        for (int row = 1; row <= rowCount; row++)
        {
            for (int col = 1; col <= colCount; col++)
            {
                Console.Write(sheet.Range[row, col].Value + "\t");
            }
            Console.WriteLine();
        }
    }
}

關(guān)鍵說明: 除逗號(hào)外,支持制表符(\t)、分號(hào)(;)等分隔符,只需修改 LoadFromFile 方法中的第二個(gè) separator 參數(shù)。

CSV 讀取結(jié)果:

二、進(jìn)階 CSV 讀取技巧

場(chǎng)景 1:讀取為 DataTable

將 CSV 文件完整讀取到 DataTable,方便后續(xù)數(shù)據(jù)處理(如篩選、入庫、展示)。

using System.Data;
using Spire.Xls;

namespace CsvReadDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 創(chuàng)建Workbook實(shí)例(Free Spire.XLS將CSV視為特殊的Excel工作簿)
            Workbook workbook = new Workbook();

            // 2. 加載CSV文件
            workbook.LoadFromFile("student.csv", ",", 1, 1);

            // 3. 獲取第一個(gè)工作表(CSV文件對(duì)應(yīng)一個(gè)工作表)
            Worksheet worksheet = workbook.Worksheets[0];

            // 4. 將工作表數(shù)據(jù)導(dǎo)出到DataTable
            DataTable dataTable = worksheet.ExportDataTable();

            // 5. 遍歷輸出數(shù)據(jù)(驗(yàn)證讀取結(jié)果)
            Console.WriteLine("CSV文件內(nèi)容:");
            // 輸出列名
            foreach (DataColumn column in dataTable.Columns)
            {
                Console.Write(column.ColumnName + "\t");
            }
            Console.WriteLine();

            // 輸出行數(shù)據(jù)
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var cellValue in row.ItemArray)
                {
                    Console.Write(cellValue.ToString() + "\t");
                }
                Console.WriteLine();
            }

            // 釋放資源
            workbook.Dispose();
        }
    }
}

代碼說明:

  • CSV 文件會(huì)被解析為 Excel 工作表,通過 ExportDataTable() 可直接轉(zhuǎn)為 DataTable,無需手動(dòng)解析每行每列;
  • 若 CSV 第一行是列名,ExportDataTable() 默認(rèn)將第一行作為列名,后續(xù)行作為數(shù)據(jù)行。

Datable 驗(yàn)證結(jié)果:

場(chǎng)景 2:讀取特定行和列

若只需讀取 CSV 的部分?jǐn)?shù)據(jù)(如第 5 行、第 3 列,或指定行列范圍),可直接通過工作表的 Range[] 屬性定位。

using Spire.Xls;

namespace CsvReadDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("student.csv", ",", 1, 1);
            Worksheet worksheet = workbook.Worksheets[0];

            // 1. 讀取指定單元格(第3行第2列,注意:行/列索引從1開始)
            string cellValue = worksheet.Range[3, 2].Text;
            Console.WriteLine("第3行第2列的值:" + cellValue);

            // 2. 讀取指定行(第4行所有數(shù)據(jù))
            Console.WriteLine("\n第4行所有數(shù)據(jù):");
            for (int col = 1; col <= worksheet.LastColumn; col++)
            {
                Console.Write(worksheet.Range[4, col].Text + "\t");
            }

            // 3. 讀取指定列(第1列所有數(shù)據(jù))
            Console.WriteLine("\n\n第1列所有數(shù)據(jù):");
            for (int row = 1; row <= worksheet.LastRow; row++)
            {
                Console.WriteLine(worksheet.Range[row, 1].Text);
            }

            workbook.Dispose();
        }
    }
}

控制臺(tái)輸出效果:

Free Spire.XLS for .NET 通過封裝好的 API,讓 CSV 讀取變得簡(jiǎn)單高效。本文覆蓋了基礎(chǔ)讀取、DataTable轉(zhuǎn)換、指定行列讀取等核心場(chǎng)景,滿足大部分業(yè)務(wù)需求。除了讀取,F(xiàn)ree Spire.XLS 還支持 CSV 文件的寫入、格式修改、轉(zhuǎn)為 Excel 等多種操作。

到此這篇關(guān)于C#實(shí)現(xiàn)高效讀取CSV文件的完整指南的文章就介紹到這了,更多相關(guān)C#讀取CSV內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解C#如何控制多線程同步執(zhí)行

    詳解C#如何控制多線程同步執(zhí)行

    使用Task類來控制多線程的同步執(zhí)行,可應(yīng)用于多任務(wù)分發(fā)執(zhí)行后,這篇文章主要為大家詳細(xì)介紹了C#如何通過Task類控制多線程同步執(zhí)行,感興趣的小伙伴可以了解下
    2023-12-12
  • C#子窗體獲取父窗體TextBox框的值實(shí)現(xiàn)方式

    C#子窗體獲取父窗體TextBox框的值實(shí)現(xiàn)方式

    文章描述了在C#中通過構(gòu)造函數(shù)和公共屬性兩種方法實(shí)現(xiàn)窗體間傳遞數(shù)據(jù)的過程,父窗體通過按鈕點(diǎn)擊事件獲取子窗體的文本框值,并通過構(gòu)造函數(shù)或公共屬性將值傳遞給子窗體,子窗體在加載時(shí)接收并處理傳遞的值,顯示在文本框中
    2025-10-10
  • WPF實(shí)現(xiàn)背景燈光隨鼠標(biāo)閃動(dòng)效果

    WPF實(shí)現(xiàn)背景燈光隨鼠標(biāo)閃動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)背景燈光隨鼠標(biāo)閃動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)

    C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)

    這篇文章介紹了C#對(duì)桌面應(yīng)用程序自定義鼠標(biāo)光標(biāo)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#中parallel.foreach實(shí)現(xiàn)多線程處理

    C#中parallel.foreach實(shí)現(xiàn)多線程處理

    Parallel.ForEach方法是C#中的一個(gè)并行循環(huán)方法,它可以并行地對(duì)一個(gè)集合進(jìn)行迭代操作,本文主要介紹了C#中parallel.foreach實(shí)現(xiàn)多線程處理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • C#獲取文件相關(guān)信息的方法

    C#獲取文件相關(guān)信息的方法

    這篇文章主要介紹了C#獲取文件相關(guān)信息的方法,涉及C#中FileInfo類的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#使用FolderBrowserDialog類實(shí)現(xiàn)選擇打開文件夾方法詳解

    C#使用FolderBrowserDialog類實(shí)現(xiàn)選擇打開文件夾方法詳解

    這篇文章主要介紹了C#選擇文件夾/打開文件夾/瀏覽文件夾等代碼方法,大家參考使用
    2013-11-11
  • 淺析依賴注入框架Autofac的使用

    淺析依賴注入框架Autofac的使用

    Autofac是一款I(lǐng)OC框架,比起Spring.NET,Unity,Castle等等框架,它很輕量級(jí)且性能也很高,下面小編給大家介紹下依賴注入框架Autofac的使用。
    2015-07-07
  • C# Newtonsoft.Json用法詳解

    C# Newtonsoft.Json用法詳解

    本文主要介紹了C# Newtonsoft.Json用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C#中面向?qū)ο缶幊虣C(jī)制之繼承學(xué)習(xí)筆記

    C#中面向?qū)ο缶幊虣C(jī)制之繼承學(xué)習(xí)筆記

    這篇文章主要介紹了C#中面向?qū)ο缶幊虣C(jī)制之繼承學(xué)習(xí)筆記,本文給出一個(gè)簡(jiǎn)單子實(shí)例講解C#中的繼承,并講解了一些C#繼承的知識(shí)技巧,需要的朋友可以參考下
    2015-01-01

最新評(píng)論

西乌珠穆沁旗| 长汀县| 新建县| 黄大仙区| 高要市| 建湖县| 普兰县| 大同县| 滨海县| 姜堰市| 泽普县| 古田县| 荥阳市| 海兴县| 巴塘县| 灵宝市| 大埔县| 满洲里市| 阜阳市| 玉龙| 瑞金市| 余江县| 泰和县| 新昌县| 东海县| 闽清县| 乐平市| 昌都县| 崇仁县| 甘肃省| 房产| 石嘴山市| 兴宁市| 云龙县| 珠海市| 临清市| 阳东县| 炉霍县| 杭锦后旗| 涟源市| 临洮县|