IRONSOFTWAREHOME
USING IRONXL

如何在C#中將CSV導入資料表

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

歡迎來到這個初學者教程,我們將學習如何使用IronXL將CSV(逗號分隔值)文件匯入到C#中的DataTable。 本指南將提供一種易於遵循的方法,即使您是C#的新手,也會發現這個過程很簡單。 我們將講解每一步,從設置環境到編寫源程式碼。 在本教程結束時,您將清楚地了解如何將CSV資料轉換為DataTable,管理DataTable的列,並藉由文件閱讀器和IronXL處理C#中的各種CSV文件方面。

先決條件

在我們深入研究之前,請確保您已具備:

  • C#的基本知識
  • 已在您的本地機器上安裝Visual Studio
  • 可以通過NuGet Package Manager獲得的IronXL程式庫

了解基礎

什麼是CSV文件?

CSV文件(逗號分隔值文件)是一種型別的純文字文件,使用特定的結構來安排表格資料。 它是一種常見的資料交換格式,因為CSV格式簡單、緊湊,並且相容多個平臺。 在CSV文件中,資料由逗號分隔,每一行表示一個新的行,通常第一行是列名。

Understanding DataTables in C#

DataTable是C#中ADO.NET程式庫的一部分,用於表示記憶體中資料的單個表。 它由行和列組成,每個列可以是不同的資料型別。 DataTable非常靈活,能夠以結構化格式表示資料,非常適合用於處理CSV文件資料。

設置您的項目

步驟1:建立一個新的C#項目

  1. 開啟Visual Studio。
  2. 選擇文件 > 新建 > 項目
  3. 選擇C#控制台應用程式或Windows Forms應用程式,適當命名。

步驟2:安裝IronXL

IronXL是一個強大的程式庫,允許您在C#中使用Excel和CSV文件。 要使用它,您需要通過NuGet Package Manager進行安裝。 在Visual Studio中:

  1. 前往工具 > NuGet Package Manager > 為解決方案管理NuGet包

  2. 搜索IronXL.Excel

    如何在C#中將CSV匯入到DataTable:圖1 - IronXL

  3. 將這個包安裝到您的項目中。

使用IronXL將CSV文件讀入DataTables

步驟1:設置您的環境

using IronXL;
using System.Data;

這些using語句包括我們任務所需的命名空間。

步驟2:建立一個方法以匯入CSV

定義一個類,命名為CsvToDataTable,帶有一個靜態方法ImportCsvToDataTable。 這個方法將負責將CSV文件轉換為DataTable

public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Code snippet to import CSV will be placed here
        return null; // Placeholder return statement
    }
}

步驟3:載入CSV文件

ImportCsvToDataTable方法內部,從載入CSV文件開始。IronXL提供了一種簡便的方法來做到這一點:

// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);

WorkBook.LoadCSV是IronXL中的一個方法,用於載入CSV文件。 這裡,filePath是您的CSV文件的路徑。

步驟4:將CSV轉換為DataTable

將載入的CSV資料轉換為DataTable。 這一步很關鍵,因為它將資料轉換為一種在C#應用程式中容易處理和顯示的格式。

// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;

此程式碼片段將CSV資料轉換為DataTableDefaultWorkSheet從工作簿中獲取第一個工作表,相當於CSV文件中的完整資料。在CSV文件的情況下,ToDataTable方法是IronXL的一個強大功能,能夠高效地將CSV資料映射到DataTable結構中,包括像CSV文件第一行的列名。

步驟5:在您的應用程式中利用此方法

現在,在您的應用程式中使用ImportCsvToDataTable方法。 例如,您可能希望在應用程式啟動時或使用者上傳CSV文件時調用這個方法。

// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);

此程式碼段演示瞭如何調用ImportCsvToDataTable方法。 用實際的CSV文件路徑替換**"csvfile.csv"**。

步驟6:處理輸出DataTable

一旦您擁有DataTable,就可以進行各種操作,如在使用者介面中顯示資料、過濾或處理資料。 以下是一些例子:

在控制台應用程式中顯示資料

foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item} ");
    }
    Console.WriteLine();
}

此程式碼遍歷DataTable中的每一行和每一列,並將資料列印到控制台。

過濾資料

您可以使用LINQ來過濾DataTable中的資料。 例如,如果您想選擇特定列符合某個條件的行:

var filteredRows = dataTable.AsEnumerable()
                            .Where(row => row.Field<string>("ColumnName") == "SomeValue");

用您要篩選的列名和值替換**"ColumnName""SomeValue"**。

完整程式碼段

這裡是您可以在項目中使用的完整源程式碼:

using IronXL;
using System;
using System.Data;
using System.IO;

public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Check if the file exists
        if (!File.Exists(filePath))
        {
            throw new FileNotFoundException($"The file at {filePath} was not found.");
        }

        // Load the CSV file
        WorkBook workbook = WorkBook.LoadCSV(filePath);
        // Get the first worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;
        // Convert the worksheet to DataTable
        DataTable dataTable = sheet.ToDataTable();
        return dataTable;
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Usage
        try
        {
            string filePath = "sample_data.csv"; // CSV file path
            DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(filePath);
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var item in row.ItemArray)
                {
                    Console.Write($"{item} ");
                }
                Console.WriteLine();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}

您可以在Program.cs文件中使用此程式碼。如在生產環境中工作,不要忘記新增IronXL的授權。

程式碼的輸出

一旦運行程式,將載入CSV文件並將其資料匯入到DataTable。 之後,它會在控制台中顯示DataTable列的內容。 這有助於驗證資料是否正確導入到DataTable中。

如何在C#中將CSV匯入到DataTable:圖2 - 輸出

處理不同的場景

在實際應用中,CSV文件可能在格式和結構上有很大差異。 處理這些變化很重要,以確保您的應用程式具有強大和靈活性。讓我們擴展說明如何使用IronXL在DataTable中匯入CSV資料時處理不同情況。

處理不同的分隔符

逗號是CSV文件中的預設分隔符。 不過,CSV文件可能並不總是使用逗號來分隔數值。 有時,分號、標籤或其他字元被用作分隔符。 在IronXL中要處理這種情況:

指定自定義分隔符:在載入CSV文件之前,可以指定文件的分隔符。 例如,如果您的文件使用分號(;),您可以這樣設置:

WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");

處理大型CSV文件

處理大型CSV文件時,考慮記憶體使用和性能至關重要。 IronXL提供了高效的方法來處理大型文件,而不需一次性把整個文件載入到記憶體中。 您可以分塊讀取文件或使用IronXL提供的流式API來有效管理記憶體使用。

結論

在C#中使用IronXL將CSV資料導入DataTable非常簡便。 它增強了您應用程式的資料操作能力,允許您高效地處理CSV文件。 根據本教程中介紹的步驟,初學者可以輕鬆將此功能整合到他們的C#項目中。

IronXL免費為使用者提供試用以探索其功能。 對於需要更多高級功能和支援的使用者,還有許可選項可以選擇。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立