使用 IRONXL 如何在C#中將CSV導入數據表 Jordi Bardia 更新日期:6月 22, 2025 Download IronXL NuGet 下載 DLL 下載 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article Welcome to this beginner's tutorial on importing CSV (comma-separated values) files into a DataTable in C# using IronXL. 本指南將為您提供一種易於遵循的方法,確保即使您是C#的新手,您也會覺得此過程簡單易行。 我們將涵蓋從設置環境到編寫源代碼的每個步驟。 在本教程結束時,您將清楚地了解如何將CSV數據轉換為DataTable,管理DataTable列以及使用文件閱讀器和IronXL處理CSV文檔的各個方面。 先決條件 在我們深入研究之前,請確保您擁有: C#的基本知識 在您的本地機器上安裝的Visual Studio 可以通過NuGet包管理器獲取的IronXL庫 理解基礎知識 什麼是CSV文件? CSV文件(逗號分隔值文件)是一種使用特定結構來安排表格數據的純文本文件。 由於CSV簡單、緊湊,並且可以在多個平台上使用,因此它是數據交換的常見格式。 在CSV文件中,數據由逗號分隔,每一行都表示一個新行,列標題通常出現在第一行。 理解C#中的DataTables DataTable是C#中ADO.NET庫的一部分,代表內存中數據的單個表。 它包括行和列,每個列可以有不同的數據類型。 DataTables靈活性高,可以以結構化格式表示數據,這使得它們非常適合處理CSV文件數據。 設置您的項目 步驟1:創建一個新的C#項目 打開 Visual Studio。 選擇文件 > 新建 > 項目。 選擇C#控制台或Windows窗體應用程序,並適當命名。 步驟2:安裝IronXL IronXL是一個強大的庫,允許您在C#中處理Excel和CSV文件。 要使用它,您需要通過NuGet包管理器安裝它。 在Visual Studio中: 前往工具 > NuGet包管理器 > 管理解決方案的NuGet包。 搜索IronXL.Excel。 將包安裝到您的項目中。 使用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轉換為DataTable 將加載的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:使用輸出DataTable 獲得DataTable後,您可以執行各種操作,如在用戶界面中顯示數據、過濾或處理數據。 以下是一些例子: 在控制台應用程序中顯示數據 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 此代碼遍歷DataTable中的每一行和每一列,並將數據打印到控制台。 過濾數據 您可以使用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文件並將其數據導入DataTable。 然後,它將在控制台中顯示DataTable列的內容。 這有助於驗證數據已正確導入到DataTable中。 處理不同的情景 在現實世界的情景中,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。 設置使用 IronXL 的 Visual Studio 項目需要哪些步驟? 要設置使用 IronXL 的 Visual Studio 項目,請通過導航到工具 > NuGet 包管理器 > 為解決方案管理 NuGet 包來安裝 IronXL 包,然後搜索 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 文件,或逗號分隔值文件,是一種用逗號分隔數據的純文本文件。由於其簡單性和與許多應用程序的兼容性,它被廣泛用於數據交換。 導入 CSV 到 DataTable 教程需要哪些前提條件? 要遵循教程,您需要對 C# 有基本的了解,在您的計算機上安裝了 Visual Studio,以及可以通過 NuGet 包管理器獲得的 IronXL 庫。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 發表日期 10月 27, 2025 如何在 C# 中創建 Excel 樞紐分析表 學習使用 C# Interop 和 IronXL 創建 Excel 中的樞紐分析表,這是一個清晰的分步指南。 閱讀更多 發表日期 10月 27, 2025 如何在 C# 中將 DataGridView 匯出為 Excel 並保留列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多 發表日期 10月 27, 2025 如何使用 IronXL 的 .NET Core CSV 讀取器 學習使用 IronXL 作為 .NET Core CSV 讀取器的有效方法,提供實用範例。 閱讀更多 如何在 VB .NET 中將 Excel 文件導入 SQL 數據庫如何在 C# 中將 CSV 文件轉...
發表日期 10月 27, 2025 如何在 C# 中將 DataGridView 匯出為 Excel 並保留列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多