使用 IRONXL 如何在 C# 中將 CSV 匯入 Datatable Curtis Chau 更新:2025年6月22日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 歡迎來到本篇關於使用IronXL將 CSV(逗號分隔值)檔案匯入 C# 中的DataTable 的入門教學。 本指南將為您提供易於遵循的方法,確保即使您是 C# 新手,也能輕鬆上手。 我們將涵蓋從搭建環境到編寫原始程式碼的每一個步驟。 在本教程結束時,您將清楚地了解如何將 CSV 資料轉換為 DataTable、管理 DataTable 列以及使用檔案讀取器和 IronXL 在 C# 中處理 CSV 文件的各個方面。 先決條件 在深入探討之前,請確保您已準備好: 具備 C# 基礎知識 您的本機上已安裝 Visual Studio IronXL 庫,可透過 NuGet 套件管理器取得。 瞭解基礎知識 什麼是CSV檔案? CSV 文件(逗號分隔值文件)是一種純文字文件,它使用特定的結構來排列表格資料。 CSV 是一種常見的資料交換格式,因為它簡單、緊湊,並且與眾多平台相容。 在 CSV 檔案中,資料以逗號分隔,每一行代表一個新的資料行,列標題通常位於第一行。 理解 C# 中的 DataTables DataTable 是 C# 中 ADO.NET 函式庫的一部分,它表示記憶體中的單一資料表。 它由行和列組成,每一列都可以是不同的資料類型。 DataTables 具有高度的靈活性,能夠以結構化格式表示數據,因此非常適合處理 CSV 檔案資料。 設定您的項目 步驟 1:建立一個新的 C# 項目 1.開啟 Visual Studio。 選擇檔案>新建>項目。 選擇一個 C# 控制台應用程式或 Windows 窗體應用程序,並為其命名。 步驟 2:安裝 IronXL IronXL 是一個功能強大的庫,可讓您在 C# 中處理 Excel和 CSV 檔案。 要使用它,需要透過 NuGet 套件管理器進行安裝。 在 Visual Studio: 前往"工具" > "NuGet 套件管理員" > "管理解決方案的 NuGet 套件" 。 搜尋IronXL.Excel 。 如何在 C# 中將 CSV 檔案匯入資料表:圖 1 - IronXL 將軟體包安裝到您的專案中。 使用 IronXL 將 CSV 檔案讀取到 DataTables 中 步驟 1:設定環境 using IronXL; using System.Data; using IronXL; using System.Data; Imports IronXL Imports System.Data $vbLabelText $csharpLabel 這些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 } } public class CsvToDataTable { public static DataTable ImportCsvToDataTable(string filePath) { // Code snippet to import CSV will be placed here return null; // Placeholder return statement } } Public Class CsvToDataTable Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable ' Code snippet to import CSV will be placed here Return Nothing ' Placeholder return statement End Function End Class $vbLabelText $csharpLabel 步驟 3:載入 CSV 文件 在ImportCsvToDataTable方法中,首先載入 CSV 檔案。 IronXL 提供了一種簡單直接的方法來實現這一點: // Load the CSV file WorkBook workbook = WorkBook.LoadCSV(filePath); // Load the CSV file WorkBook workbook = WorkBook.LoadCSV(filePath); ' Load the CSV file Dim workbook As WorkBook = WorkBook.LoadCSV(filePath) $vbLabelText $csharpLabel WorkBook.LoadCSV是 IronXL 中用來載入 CSV 檔案的方法。 其中, filePath是您的 CSV 檔案的路徑。 步驟 4:將 CSV 檔案轉換為資料表 將載入的 CSV 資料轉換為DataTable 。 這一步驟至關重要,因為它將資料轉換為可以在 C# 應用程式中輕鬆操作和顯示的格式。 // Get the first worksheet WorkSheet sheet = workbook.DefaultWorkSheet; // Convert CSV worksheet to DataTable DataTable dataTable = sheet.ToDataTable(); return dataTable; // Get the first worksheet WorkSheet sheet = workbook.DefaultWorkSheet; // Convert CSV worksheet to DataTable DataTable dataTable = sheet.ToDataTable(); return dataTable; ' Get the first worksheet Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Convert CSV worksheet to DataTable Dim dataTable As DataTable = sheet.ToDataTable() Return dataTable $vbLabelText $csharpLabel 這段程式碼將 CSV 資料轉換為DataTable 。 DefaultWorkSheet方法會從工作簿中取得第一個工作表,如果是 CSV 文件,則相當於取得整個 CSV 資料。 ToDataTable 方法是IronXL的一個強大功能,它可以有效地將 CSV 資料對應到DataTable結構,如果 CSV 檔案的第一行包含列標題行,也會將其包含在內。 步驟 5:在應用程式中使用該方法 現在,在您的應用程式中使用ImportCsvToDataTable方法。 例如,您可能希望在應用程式啟動時或使用者上傳 CSV 檔案時呼叫此方法。 // Usage string csvFilePath = "csvfile.csv"; DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath); // Usage string csvFilePath = "csvfile.csv"; DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath); ' Usage Dim csvFilePath As String = "csvfile.csv" Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath) $vbLabelText $csharpLabel 此程式碼片段示範如何呼叫ImportCsvToDataTable方法。 將"csvfile.csv"替換為您的 CSV 檔案的實際檔案路徑。 步驟 6:處理輸出資料表 有了資料表之後,就可以執行各種操作,例如在使用者介面中顯示資料、篩選資料或處理資料。 以下是一些例子: 在控制台應用程式中顯示數據 foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item} "); } Console.WriteLine(); } foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item} "); } Console.WriteLine(); } For Each row As DataRow In dataTable.Rows For Each item In row.ItemArray Console.Write($"{item} ") Next item Console.WriteLine() Next row $vbLabelText $csharpLabel 這段程式碼遍歷資料表中的每一行和每一列,並將資料列印到控制台。 資料篩選 您可以使用 LINQ 來篩選 DataTable 中的資料。 例如,如果您想要選擇特定列符合某個條件的行: var filteredRows = dataTable.AsEnumerable() .Where(row => row.Field<string>("ColumnName") == "SomeValue"); var filteredRows = dataTable.AsEnumerable() .Where(row => row.Field<string>("ColumnName") == "SomeValue"); Dim filteredRows = dataTable.AsEnumerable().Where(Function(row) row.Field(Of String)("ColumnName") = "SomeValue") $vbLabelText $csharpLabel 將"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}"); } } } 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}"); } } } Imports IronXL Imports System Imports System.Data Imports System.IO Public Class CsvToDataTable Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable ' Check if the file exists If Not File.Exists(filePath) Then Throw New FileNotFoundException($"The file at {filePath} was not found.") End If ' Load the CSV file Dim workbook As WorkBook = WorkBook.LoadCSV(filePath) ' Get the first worksheet Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Convert the worksheet to DataTable Dim dataTable As DataTable = sheet.ToDataTable() Return dataTable End Function End Class Friend Class Program Shared Sub Main(ByVal args() As String) ' Usage Try Dim filePath As String = "sample_data.csv" ' CSV file path Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(filePath) For Each row As DataRow In dataTable.Rows For Each item In row.ItemArray Console.Write($"{item} ") Next item Console.WriteLine() Next row Catch ex As Exception Console.WriteLine($"An error occurred: {ex.Message}") End Try End Sub End Class $vbLabelText $csharpLabel 您可以在Program.cs檔案中使用此程式碼。如果您在生產環境中使用,請不要忘記新增 IronXL 的授權。 程式碼輸出 運行程式碼後,它將載入 CSV 檔案並將其資料匯入到資料表中。 之後,控制台將顯示資料表列的內容。 這有助於驗證資料是否已正確匯入到資料表中。 如何在 C# 中將 CSV 檔案匯入到資料表中:圖 2 - 輸出 應對不同情況 在實際應用中,CSV 檔案的格式和結構可能存在很大差異。 妥善處理這些變化至關重要,以確保應用程式的穩健性和通用性。接下來,我們將詳細介紹如何使用 IronXL 將 CSV 資料匯入 DataTable 時處理不同的場景。 處理不同的分隔符 逗號是 CSV 檔案中的預設分隔符號。 但是,CSV 檔案可能並非總是使用逗號分隔值。 有時,會使用分號、製表符或其他字元作為分隔符號。 在 IronXL 中處理此問題: 指定自訂分隔符號:在載入 CSV 檔案之前,您可以指定檔案的分隔符號。 例如,如果你的檔案使用分號( ; ),你可以這樣設定: WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";"); WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";"); Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";") $vbLabelText $csharpLabel 處理大型 CSV 文件 處理大型 CSV 檔案時,必須考慮記憶體使用情況和效能。 IronXL 提供了一種高效的方式來處理大型文件,而無需一次性將整個文件加載到記憶體中。 您可以分塊讀取文件,也可以利用 IronXL 提供的串流 API 來有效管理記憶體使用量。 結論 使用 IronXL 在 C# 中將 CSV 資料匯入 DataTable 非常簡單。 它增強了應用程式的資料處理能力,使您能夠有效率地處理 CSV 檔案。 透過本教程中概述的步驟,初學者可以輕鬆地將此功能整合到他們的 C# 專案中。 IronXL 提供免費試用,供使用者體驗其各項功能。 對於尋求更高級功能和支援的用戶,我們提供許可選項。 常見問題解答 如何在 C# 中將 CSV 資料匯入 DataTable? 您可以使用 IronXL 的 WorkBook.LoadCSV 方法載入 CSV 檔案,然後再使用 ToDataTable 方法將其轉換為 DataTable,如此即可在 C# 中將 CSV 資料匯入 DataTable。 設定 Visual Studio 專案以使用 IronXL 需要哪些步驟? 若要設定 Visual Studio 專案以使用 IronXL,請透過 NuGet 套件管理員安裝 IronXL 套件,方法是導覽至工具 > NuGet 套件管理員 > 管理解決方案的 NuGet 套件,然後搜尋 IronXL.Excel。然後,將其新增至您的專案。 IronXL 可以處理具有不同分隔符的 CSV 檔案嗎? 是的,IronXL 可以透過在 WorkBook.LoadCSV 方法中使用 listDelimiter 參數指定自訂定界符來處理具有不同定界符的 CSV 檔案。 載入 CSV 檔案時遇到「找不到檔案」錯誤,該怎麼辦? 如果遇到「找不到檔案」錯誤,請確保檔案路徑正確。使用 File.Exists(filePath) 檢查檔案是否存在,並避免發生此類錯誤。 如何在 C# 中有效管理大型 CSV 檔案? 為了有效管理大型 CSV 檔案,IronXL 提供了分塊讀取檔案或使用串流 API 等功能,有助於優化記憶體使用量和效能。 將 CSV 資料轉換成 DataTable 有什麼好處? 將 CSV 資料轉換為 DataTable 可進行結構化的資料處理,使 C# 應用程式中的資料處理、篩選和顯示更為容易。 如何在 C# 控制台應用程式中顯示 DataTable 的內容? 若要在 C# 控制台應用程式中顯示 DataTable 的內容,請遍歷每個 DataRow 並使用嵌套循環列印每一項,以在控制台中顯示資料。 什麼是 CSV 檔案,為什麼它有用? CSV 檔案或 Comma Separated Values 檔案是一種以逗號分隔資料的純文字檔案。由於其簡單性及與許多應用程式的相容性,它被廣泛用於資料交換。 遵循將 CSV 匯入 DataTable 的教學需要哪些先決條件? 若要遵循本教學,您需要對 C# 有基本的瞭解、在您的機器上安裝 Visual Studio,以及可透過 NuGet Package Manager 取得的 IronXL 函式庫。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 相關文章 發表日期 2026年2月15日 如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C# 學習如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C#。 閱讀更多 發表日期 2026年2月15日 如何在未安裝 Office 的情況下使用 IronXL 開啟 VB.NET 中的現有 Excel 檔案 了解如何使用 IronXL for .NET 在未安裝 Office 的情況下在 VB.NET 中開啟現有的 Excel 檔案。 閱讀更多 發表日期 2026年2月15日 C# CSV to XLSX:完整開發人員指南 使用 IronXL 在 C# 中將 CSV 轉換為 XLSX。載入 CSV 檔案、保留資料類型、新增圖表,以及匯出為 Excel 格式,而無需 Microsoft Office 的相依性。 閱讀更多 如何在 VB .NET 中將 Excel 檔案匯入 SQL 資料庫如何在 C# 中將 CSV 檔案轉...
發表日期 2026年2月15日 如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C# 學習如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C#。 閱讀更多
發表日期 2026年2月15日 如何在未安裝 Office 的情況下使用 IronXL 開啟 VB.NET 中的現有 Excel 檔案 了解如何使用 IronXL for .NET 在未安裝 Office 的情況下在 VB.NET 中開啟現有的 Excel 檔案。 閱讀更多
發表日期 2026年2月15日 C# CSV to XLSX:完整開發人員指南 使用 IronXL 在 C# 中將 CSV 轉換為 XLSX。載入 CSV 檔案、保留資料類型、新增圖表,以及匯出為 Excel 格式,而無需 Microsoft Office 的相依性。 閱讀更多