使用 IRONXL C# CSV檔案閱讀器:使用IronXL解析和處理CSV資料。 Jordi Bardia 更新:2026年2月27日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 CSV(逗號分隔值)文件在商業應用程式中無所不在,從財務報告到客戶資料匯出,無所不包。 CSV 格式表面上看起來很簡單,但在生產程式碼中解析它時,如果處理帶引號的欄位、多種分隔符號類型、嵌入式換行符以及需要將原始文字轉換為強類型的.NET對象,就會很快變得困難。 IronXL是一個.NET函式庫,提供企業級 CSV 處理功能,讓開發人員可以使用最少的程式碼將 CSV 資料轉換為 Excel、XML 或其他格式。 本指南將帶您了解IronXL如何作為 C# CSV 檔案讀取器工作,以及如何在.NET 10 應用程式中實現它。 使用免費試用許可證親自體驗IronXL ,並跟隨教程了解它是如何處理 CSV 和 Excel 任務的。 如何安裝IronXL以讀取 CSV 檔案? 將IronXL整合到您的專案中只需片刻。 您可以透過 Visual Studio 中的NuGet套件管理器來安裝它,也可以透過命令列使用.NET CLI 或 PowerShell 中的NuGet套件管理器控制台進行安裝。 兩種方法都會安裝相同的軟體包,並且適用於任何.NET 10 專案類型。 # .NET CLI dotnet add package IronXl.Excel # NuGet Package Manager Console Install-Package IronXl.Excel # .NET CLI dotnet add package IronXl.Excel # NuGet Package Manager Console Install-Package IronXl.Excel SHELL 有關安裝選項和配置的更多詳細信息,請參閱IronXL安裝文件。 安裝完成後,讀取第一個 CSV 檔案只需要很少的程式碼。 以下範例使用.NET 10 頂層語句: using IronXL; // Load CSV file WorkBook workbook = WorkBook.LoadCSV("data.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; // Read a specific cell string cellValue = sheet["A1"].StringValue; // Iterate through all rows and cells foreach (var row in sheet.Rows) { foreach (var cell in row) { Console.WriteLine(cell.StringValue); } } using IronXL; // Load CSV file WorkBook workbook = WorkBook.LoadCSV("data.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; // Read a specific cell string cellValue = sheet["A1"].StringValue; // Iterate through all rows and cells foreach (var row in sheet.Rows) { foreach (var cell in row) { Console.WriteLine(cell.StringValue); } } Imports IronXL ' Load CSV file Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Read a specific cell Dim cellValue As String = sheet("A1").StringValue ' Iterate through all rows and cells For Each row In sheet.Rows For Each cell In row Console.WriteLine(cell.StringValue) Next Next $vbLabelText $csharpLabel WorkBook.LoadCSV方法處理標頭識別、建立內部資料結構並執行記憶體高效的解析,從而從第一行程式碼開始簡化您的資料管理。 如何讀取帶有自訂分隔符號的CSV檔案? 實際的 CSV 檔案並不總是使用逗號。 分號、垂直線和製表符是常見的替代符號,尤其是在逗號用作小數位分隔符號的國際資料集中。 IronXL透過其靈活的加載選項處理任何分隔符號。 using IronXL; // Load CSV with semicolon delimiter (common in European data exports) WorkBook workbook = WorkBook.LoadCSV("european-data.csv", fileFormat: ExcelFileFormat.XLSX, list分隔符: ";"); // Load tab-separated values (TSV) WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv", fileFormat: ExcelFileFormat.XLSX, list分隔符: "\t"); // Load pipe-delimited file WorkBook pipeWorkbook = WorkBook.LoadCSV("log_export.csv", fileFormat: ExcelFileFormat.XLSX, list分隔符: "|"); // Access data normally after loading WorkSheet sheet = workbook.DefaultWorkSheet; decimal totalSales = sheet["B2:B10"].Sum(); Console.WriteLine($"Total sales: {totalSales}"); using IronXL; // Load CSV with semicolon delimiter (common in European data exports) WorkBook workbook = WorkBook.LoadCSV("european-data.csv", fileFormat: ExcelFileFormat.XLSX, list分隔符: ";"); // Load tab-separated values (TSV) WorkBook tsvWorkbook = WorkBook.LoadCSV("export_data.tsv", fileFormat: ExcelFileFormat.XLSX, list分隔符: "\t"); // Load pipe-delimited file WorkBook pipeWorkbook = WorkBook.LoadCSV("log_export.csv", fileFormat: ExcelFileFormat.XLSX, list分隔符: "|"); // Access data normally after loading WorkSheet sheet = workbook.DefaultWorkSheet; decimal totalSales = sheet["B2:B10"].Sum(); Console.WriteLine($"Total sales: {totalSales}"); Imports IronXL ' Load CSV with semicolon delimiter (common in European data exports) Dim workbook As WorkBook = WorkBook.LoadCSV("european-data.csv", fileFormat:=ExcelFileFormat.XLSX, list分隔符:=";") ' Load tab-separated values (TSV) Dim tsvWorkbook As WorkBook = WorkBook.LoadCSV("export_data.tsv", fileFormat:=ExcelFileFormat.XLSX, list分隔符:=vbTab) ' Load pipe-delimited file Dim pipeWorkbook As WorkBook = WorkBook.LoadCSV("log_export.csv", fileFormat:=ExcelFileFormat.XLSX, list分隔符:="|") ' Access data normally after loading Dim sheet As WorkSheet = workbook.DefaultWorkSheet Dim totalSales As Decimal = sheet("B2:B10").Sum() Console.WriteLine($"Total sales: {totalSales}") $vbLabelText $csharpLabel list分隔符 參數接受任何字串,讓您可以完全控制解析行為。 IronXL在解析過程中保留列值和資料類型-數值仍然是數字,日期仍然是 DateTime 對象,公式保持其關係。 對於格式不一致的文件,IronXL 的錯誤處理機制可以管理格式錯誤的行,而不會導致應用程式崩潰,因此即使個別行有問題,有效資料也能繼續處理。 支援的文件格式和分隔符 IronXL在讀取 CSV 檔案時支援載入以下分隔符號類型: IronXL 的 LoadCSV 方法支援的常用分隔符號類型 分隔符 特點 常見用例 逗號 `,` 標準 CSV,美國地區匯出 分號 `;` 歐洲本地化導出(以逗號作為小數分隔符號) 標籤頁 `\t` 製表符分隔值 (TSV) 資料庫匯出 管道 `|` 日誌檔、系統匯出 自訂字串 任何 專有資料格式,多字元分隔符 如何將 CSV 資料解析為 C# 物件? 將 CSV 行轉換為強型別物件可以簡化資料處理並支援 LINQ 操作。 IronXL透過其蜂窩接入方法使這種映射變得簡單。 以下程式碼示範如何使用.NET 10 頂級語句將 CSV 檔案對應到類型化物件清單: using IronXL; // Define a typed model matching your CSV structure public record Product(string Name, decimal Price, int Stock, DateTime? LastUpdated); // Load and parse CSV file WorkBook workbook = WorkBook.LoadCSV("inventory.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; var products = new List<Product>(); // Start from row 2 to skip the header row for (int row = 2; row <= sheet.RowCount; row++) { products.Add(new Product( Name: sheet[$"A{row}"].StringValue, Price: sheet[$"B{row}"].DecimalValue, Stock: sheet[$"C{row}"].IntValue, LastUpdated: sheet[$"D{row}"].DateTimeValue )); } // Use LINQ for analysis after loading var lowStock = products.Where(p => p.Stock < 10).ToList(); var highValue = products.Where(p => p.Price > 100m).OrderByDescending(p => p.Price).ToList(); Console.WriteLine($"Products with low stock: {lowStock.Count}"); Console.WriteLine($"High-value products: {highValue.Count}"); using IronXL; // Define a typed model matching your CSV structure public record Product(string Name, decimal Price, int Stock, DateTime? LastUpdated); // Load and parse CSV file WorkBook workbook = WorkBook.LoadCSV("inventory.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; var products = new List<Product>(); // Start from row 2 to skip the header row for (int row = 2; row <= sheet.RowCount; row++) { products.Add(new Product( Name: sheet[$"A{row}"].StringValue, Price: sheet[$"B{row}"].DecimalValue, Stock: sheet[$"C{row}"].IntValue, LastUpdated: sheet[$"D{row}"].DateTimeValue )); } // Use LINQ for analysis after loading var lowStock = products.Where(p => p.Stock < 10).ToList(); var highValue = products.Where(p => p.Price > 100m).OrderByDescending(p => p.Price).ToList(); Console.WriteLine($"Products with low stock: {lowStock.Count}"); Console.WriteLine($"High-value products: {highValue.Count}"); Imports IronXL ' Define a typed model matching your CSV structure Public Class Product Public Property Name As String Public Property Price As Decimal Public Property Stock As Integer Public Property LastUpdated As DateTime? Public Sub New(name As String, price As Decimal, stock As Integer, lastUpdated As DateTime?) Me.Name = name Me.Price = price Me.Stock = stock Me.LastUpdated = lastUpdated End Sub End Class ' Load and parse CSV file Dim workbook As WorkBook = WorkBook.LoadCSV("inventory.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet Dim products As New List(Of Product)() ' Start from row 2 to skip the header row For row As Integer = 2 To sheet.RowCount products.Add(New Product( Name:=sheet($"A{row}").StringValue, Price:=sheet($"B{row}").DecimalValue, Stock:=sheet($"C{row}").IntValue, LastUpdated:=sheet($"D{row}").DateTimeValue )) Next ' Use LINQ for analysis after loading Dim lowStock = products.Where(Function(p) p.Stock < 10).ToList() Dim highValue = products.Where(Function(p) p.Price > 100D).OrderByDescending(Function(p) p.Price).ToList() Console.WriteLine($"Products with low stock: {lowStock.Count}") Console.WriteLine($"High-value products: {highValue.Count}") $vbLabelText $csharpLabel IronXL 的類型化值屬性 -- StringValue, DecimalValue, IntValue, DateTimeValue -- 安全地處理轉換,為無效資料傳回預設值,而不是拋出異常。 這種防禦性方法確保應用程式能夠處理不完美的資料而不會中斷運行。 它與C# 記錄類型自然地搭配使用,C# 記錄類型是在 C# 9 中引入的,它為映射的 CSV 行提供了一個簡潔、不可變的資料模型。 IronXL功能頁面提供了可用於讀取儲存格資料的值存取器類型的完整概述。 如何使用 LINQ 篩選和查詢 CSV 資料? 將 CSV 資料載入 WorkSheet 後,您可以使用範圍選擇器對其進行操作,或將其轉換為物件以進行 LINQ 查詢。 對於簡單的列操作,基於範圍的存取是最直接的方法: using IronXL; WorkBook workbook = WorkBook.LoadCSV("sales-data.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; // Read entire columns using range notation var productNames = sheet["A2:A100"] .Select(cell => cell.StringValue) .Where(name => !string.IsNullOrEmpty(name)) .ToList(); // Aggregate numeric columns directly decimal totalRevenue = sheet["C2:C100"].Sum(); decimal averageOrder = sheet["C2:C100"].Avg(); Console.WriteLine($"Products loaded: {productNames.Count}"); Console.WriteLine($"Total revenue: {totalRevenue:C}"); Console.WriteLine($"Average order value: {averageOrder:C}"); using IronXL; WorkBook workbook = WorkBook.LoadCSV("sales-data.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; // Read entire columns using range notation var productNames = sheet["A2:A100"] .Select(cell => cell.StringValue) .Where(name => !string.IsNullOrEmpty(name)) .ToList(); // Aggregate numeric columns directly decimal totalRevenue = sheet["C2:C100"].Sum(); decimal averageOrder = sheet["C2:C100"].Avg(); Console.WriteLine($"Products loaded: {productNames.Count}"); Console.WriteLine($"Total revenue: {totalRevenue:C}"); Console.WriteLine($"Average order value: {averageOrder:C}"); Imports IronXL Dim workbook As WorkBook = WorkBook.LoadCSV("sales-data.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Read entire columns using range notation Dim productNames = sheet("A2:A100") _ .Select(Function(cell) cell.StringValue) _ .Where(Function(name) Not String.IsNullOrEmpty(name)) _ .ToList() ' Aggregate numeric columns directly Dim totalRevenue As Decimal = sheet("C2:C100").Sum() Dim averageOrder As Decimal = sheet("C2:C100").Avg() Console.WriteLine($"Products loaded: {productNames.Count}") Console.WriteLine($"Total revenue: {totalRevenue:C}") Console.WriteLine($"Average order value: {averageOrder:C}") $vbLabelText $csharpLabel 這種基於範圍的方法避免了對簡單聚合進行逐行迭代,從而提高了處理較大檔案的效能。 有關支援的範圍操作的完整列表,請參閱IronXL文件。 如何在C#中將CSV檔案轉換為Excel格式? 許多業務流程需要將 CSV 資料轉換為 Excel 格式,以便進行進階分析、格式化或散佈。 IronXL讓這種轉換變得簡單,同時也能保持所有資料的完整性。 using IronXL; // Load CSV file WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv"); WorkSheet sheet = csvWorkbook.DefaultWorkSheet; // Apply formatting before saving sheet["A1:D1"].Style.Font.Bold = true; sheet["A1:D1"].Style.BackgroundColor = "#4472C4"; sheet["A1:D1"].Style.Font.Color = "#FFFFFF"; // Apply currency format to price column sheet["B2:B1000"].FormatString = "$#,##0.00"; // Apply date format to date column sheet["D2:D1000"].FormatString = "yyyy-MM-dd"; // Save as Excel with a single method call csvWorkbook.SaveAs("monthly-report.xlsx"); Console.WriteLine("Conversion complete: monthly-report.xlsx"); using IronXL; // Load CSV file WorkBook csvWorkbook = WorkBook.LoadCSV("monthly-report.csv"); WorkSheet sheet = csvWorkbook.DefaultWorkSheet; // Apply formatting before saving sheet["A1:D1"].Style.Font.Bold = true; sheet["A1:D1"].Style.BackgroundColor = "#4472C4"; sheet["A1:D1"].Style.Font.Color = "#FFFFFF"; // Apply currency format to price column sheet["B2:B1000"].FormatString = "$#,##0.00"; // Apply date format to date column sheet["D2:D1000"].FormatString = "yyyy-MM-dd"; // Save as Excel with a single method call csvWorkbook.SaveAs("monthly-report.xlsx"); Console.WriteLine("Conversion complete: monthly-report.xlsx"); Imports IronXL ' Load CSV file Dim csvWorkbook As WorkBook = WorkBook.LoadCSV("monthly-report.csv") Dim sheet As WorkSheet = csvWorkbook.DefaultWorkSheet ' Apply formatting before saving sheet("A1:D1").Style.Font.Bold = True sheet("A1:D1").Style.BackgroundColor = "#4472C4" sheet("A1:D1").Style.Font.Color = "#FFFFFF" ' Apply currency format to price column sheet("B2:B1000").FormatString = "$#,##0.00" ' Apply date format to date column sheet("D2:D1000").FormatString = "yyyy-MM-dd" ' Save as Excel with a single method call csvWorkbook.SaveAs("monthly-report.xlsx") Console.WriteLine("Conversion complete: monthly-report.xlsx") $vbLabelText $csharpLabel 轉換過程中保留了數值精度、日期格式和特殊字符,而這些內容通常會在手動轉換方法中造成問題。 IronXL會自動優化產生的 Excel 文件結構,建立高效的文件,即使包含大型資料集也能快速開啟。 為了更好地控制輸出格式,匯出操作指南涵蓋了 XLSX、XLS、CSV 和 PDF 匯出等選項。 您還可以學習如何編寫 Excel 文件以及如何從頭開始建立 Excel 文件。 將 CSV 轉換為資料庫操作所需的資料集 當您需要將 CSV 資料載入到 DataSet 中以進行進一步處理或資料庫插入時, IronXL提供直接轉換支援。 《 Excel轉資料集指南》對此有詳細解釋: using IronXL; using System.Data; WorkBook workbook = WorkBook.LoadCSV("customer-export.csv"); // Convert entire workbook to DataSet DataSet dataSet = workbook.ToDataSet(); // The first sheet becomes the first Data標籤頁le Data標籤頁le customer標籤頁le = dataSet.標籤頁les[0]; Console.WriteLine($"Rows loaded: {customer標籤頁le.Rows.Count}"); Console.WriteLine($"Columns: {customer標籤頁le.Columns.Count}"); // Process with standard ADO.NET foreach (DataRow row in customer標籤頁le.Rows) { string name = row["Name"]?.ToString() ?? string.Empty; string email = row["Email"]?.ToString() ?? string.Empty; Console.WriteLine($"Customer: {name} <{email}>"); } using IronXL; using System.Data; WorkBook workbook = WorkBook.LoadCSV("customer-export.csv"); // Convert entire workbook to DataSet DataSet dataSet = workbook.ToDataSet(); // The first sheet becomes the first Data標籤頁le Data標籤頁le customer標籤頁le = dataSet.標籤頁les[0]; Console.WriteLine($"Rows loaded: {customer標籤頁le.Rows.Count}"); Console.WriteLine($"Columns: {customer標籤頁le.Columns.Count}"); // Process with standard ADO.NET foreach (DataRow row in customer標籤頁le.Rows) { string name = row["Name"]?.ToString() ?? string.Empty; string email = row["Email"]?.ToString() ?? string.Empty; Console.WriteLine($"Customer: {name} <{email}>"); } Imports IronXL Imports System.Data Dim workbook As WorkBook = WorkBook.LoadCSV("customer-export.csv") ' Convert entire workbook to DataSet Dim dataSet As DataSet = workbook.ToDataSet() ' The first sheet becomes the first DataTable Dim customerTable As DataTable = dataSet.Tables(0) Console.WriteLine($"Rows loaded: {customerTable.Rows.Count}") Console.WriteLine($"Columns: {customerTable.Columns.Count}") ' Process with standard ADO.NET For Each row As DataRow In customerTable.Rows Dim name As String = If(row("Name")?.ToString(), String.Empty) Dim email As String = If(row("Email")?.ToString(), String.Empty) Console.WriteLine($"Customer: {name} <{email}>") Next $vbLabelText $csharpLabel 這種方法可以直接與.NET工作流程集成,並且在透過標準資料適配器將 CSV 資料推送到 SQL Server、SQLite 或其他關聯式資料庫時非常有用。 因為 DataSet 和 Data標籤頁le 是.NET核心類型,所以除了IronXL本身之外,此路徑不需要任何其他依賴項。 如何處理大型 CSV 檔案並進行效能最佳化? 處理大型 CSV 檔案(數萬行或更多)需要注意資料的存取方式和記憶體管理方式。 IronXL包含有助於處理大檔案場景的功能。 利用範圍運算提升效能 為了獲得處理大型資料集的最佳效能,請使用範圍操作而不是逐一存取單一儲存格。 IronXL 的內部引擎可以更有效率地處理範圍操作: using IronXL; WorkBook workbook = WorkBook.LoadCSV("large-dataset.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; int rowCount = sheet.RowCount; int colCount = sheet.ColumnCount; Console.WriteLine($"Dataset dimensions: {rowCount} rows x {colCount} columns"); // Efficient: read entire range at once var allData = sheet[$"A1:{GetColumnLetter(colCount)}{rowCount}"] .Select(cell => cell.StringValue) .ToList(); // Efficient: aggregate a column without row-by-row iteration decimal columnSum = sheet[$"B2:B{rowCount}"].Sum(); Console.WriteLine($"Column B total: {columnSum}"); static string GetColumnLetter(int col) { string result = string.Empty; while (col > 0) { col--; result = (char)('A' + col % 26) + result; col /= 26; } return result; } using IronXL; WorkBook workbook = WorkBook.LoadCSV("large-dataset.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; int rowCount = sheet.RowCount; int colCount = sheet.ColumnCount; Console.WriteLine($"Dataset dimensions: {rowCount} rows x {colCount} columns"); // Efficient: read entire range at once var allData = sheet[$"A1:{GetColumnLetter(colCount)}{rowCount}"] .Select(cell => cell.StringValue) .ToList(); // Efficient: aggregate a column without row-by-row iteration decimal columnSum = sheet[$"B2:B{rowCount}"].Sum(); Console.WriteLine($"Column B total: {columnSum}"); static string GetColumnLetter(int col) { string result = string.Empty; while (col > 0) { col--; result = (char)('A' + col % 26) + result; col /= 26; } return result; } Imports IronXL Dim workbook As WorkBook = WorkBook.LoadCSV("large-dataset.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet Dim rowCount As Integer = sheet.RowCount Dim colCount As Integer = sheet.ColumnCount Console.WriteLine($"Dataset dimensions: {rowCount} rows x {colCount} columns") ' Efficient: read entire range at once Dim allData = sheet($"A1:{GetColumnLetter(colCount)}{rowCount}") _ .Select(Function(cell) cell.StringValue) _ .ToList() ' Efficient: aggregate a column without row-by-row iteration Dim columnSum As Decimal = sheet($"B2:B{rowCount}").Sum() Console.WriteLine($"Column B total: {columnSum}") Private Shared Function GetColumnLetter(col As Integer) As String Dim result As String = String.Empty While col > 0 col -= 1 result = ChrW(AscW("A"c) + col Mod 26) & result col \= 26 End While Return result End Function $vbLabelText $csharpLabel IronXL在載入 CSV 檔案時會自動處理文字編碼變體( UTF-8、UTF-16、ASCII ),確保列值中的國際字元無需額外配置即可正確顯示。 對於從 UTF-8 BOM 或其他編碼常見的地區系統匯出的檔案而言,這一點尤其重要。 針對不受信任的 CSV 來源的錯誤處理 在處理來自不可信或不穩定來源的 CSV 檔案時,將操作包裝在 try-catch 區塊中可以提供額外的安全性: using IronXL; string filePath = "user-uploaded-data.csv"; try { WorkBook workbook = WorkBook.LoadCSV(filePath); WorkSheet sheet = workbook.DefaultWorkSheet; Console.WriteLine($"Loaded {sheet.RowCount} rows from {filePath}"); for (int row = 2; row <= sheet.RowCount; row++) { string value = sheet[$"A{row}"].StringValue; if (!string.IsNullOrWhiteSpace(value)) { Console.WriteLine(value); } } } catch (IronXl.Exceptions.IronXLException ex) { Console.WriteLine($"IronXL error reading {filePath}: {ex.Message}"); } catch (IOException ex) { Console.WriteLine($"File access error: {ex.Message}"); } using IronXL; string filePath = "user-uploaded-data.csv"; try { WorkBook workbook = WorkBook.LoadCSV(filePath); WorkSheet sheet = workbook.DefaultWorkSheet; Console.WriteLine($"Loaded {sheet.RowCount} rows from {filePath}"); for (int row = 2; row <= sheet.RowCount; row++) { string value = sheet[$"A{row}"].StringValue; if (!string.IsNullOrWhiteSpace(value)) { Console.WriteLine(value); } } } catch (IronXl.Exceptions.IronXLException ex) { Console.WriteLine($"IronXL error reading {filePath}: {ex.Message}"); } catch (IOException ex) { Console.WriteLine($"File access error: {ex.Message}"); } Imports IronXL Dim filePath As String = "user-uploaded-data.csv" Try Dim workbook As WorkBook = WorkBook.LoadCSV(filePath) Dim sheet As WorkSheet = workbook.DefaultWorkSheet Console.WriteLine($"Loaded {sheet.RowCount} rows from {filePath}") For row As Integer = 2 To sheet.RowCount Dim value As String = sheet($"A{row}").StringValue If Not String.IsNullOrWhiteSpace(value) Then Console.WriteLine(value) End If Next Catch ex As IronXl.Exceptions.IronXLException Console.WriteLine($"IronXL error reading {filePath}: {ex.Message}") Catch ex As IOException Console.WriteLine($"File access error: {ex.Message}") End Try $vbLabelText $csharpLabel IronXL操作指南涵蓋了各種來源的資料導入模式,包括檔案、流和位元組數組。 C# CSV 檔案讀取器教學:使用IronXL解析並轉換 CSV 資料:圖 5 - 將 CSV 轉換為 Excel 格式 跨平台部署 IronXL獨立於 Microsoft Office 運行,因此適用於伺服器環境和雲端部署。 無論部署到 Windows、Linux、macOS、Docker 容器,或是 Azure 或 AWS 上的雲端函數, IronXL都能在所有平台上提供一致的結果,無需進行設定變更。 這種跨平台能力對於微服務架構來說非常有價值,因為在微服務架構中,輕量級容器負責處理資料處理任務。 IronXL功能概述詳細介紹了支援的環境和運行時目標的完整清單。 如何取得IronXL的授權? IronXL在生產環境中使用需要許可證金鑰。 我們提供免費試用許可證供您評估,並為個人開發者、團隊和組織提供商業許可證。 在呼叫任何IronXL函數之前,請先在應用程式中套用許可證金鑰: using IronXL; // Apply license key at application startup IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"; // Verify the license is active if (IronXl.License.IsValidLicense("YOUR-LICENSE-KEY-HERE")) { Console.WriteLine("IronXL license is active."); } // Now use IronXL normally WorkBook workbook = WorkBook.LoadCSV("data.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; Console.WriteLine($"Loaded {sheet.RowCount} rows."); using IronXL; // Apply license key at application startup IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"; // Verify the license is active if (IronXl.License.IsValidLicense("YOUR-LICENSE-KEY-HERE")) { Console.WriteLine("IronXL license is active."); } // Now use IronXL normally WorkBook workbook = WorkBook.LoadCSV("data.csv"); WorkSheet sheet = workbook.DefaultWorkSheet; Console.WriteLine($"Loaded {sheet.RowCount} rows."); Imports IronXL ' Apply license key at application startup IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE" ' Verify the license is active If IronXl.License.IsValidLicense("YOUR-LICENSE-KEY-HERE") Then Console.WriteLine("IronXL license is active.") End If ' Now use IronXL normally Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv") Dim sheet As WorkSheet = workbook.DefaultWorkSheet Console.WriteLine($"Loaded {sheet.RowCount} rows.") $vbLabelText $csharpLabel 有關試用和授權選項,請造訪IronXL授權頁面。 為什麼IronXL是 CSV 處理的理想選擇? IronXL將 C# CSV 檔案讀取從繁瑣的解析任務變成了簡單的操作。 該函式庫可以處理手動解析出錯的常見極端情況——嵌入式逗號、帶引號的欄位中的換行符、不一致的分隔符號、編碼變更和格式錯誤的行——而無需針對每種情況編寫自訂程式碼。 無論您需要快速的一次性資料匯入,還是每天處理數千個文件的生產管道,同一個 API 都能在這兩種情況下正常運作。 使用 string.Split 或 StreamReader 手動解析 CSV 時,如果引號的欄位包含分隔符,或欄位值中出現換行符,則會很快出現問題。 IronXL預設會正確處理這些情況,並遵循CSV 規範對帶引號的字段處理和轉義序列進行規範。 IronXL在.NET 10 中處理 CSV 檔案時具有以下主要優勢: -無需 Office 依賴:伺服器和雲端部署無需安裝 Microsoft Office 或任何 COM 互通即可運作。 -自訂分隔符號:支援透過 list分隔符 參數使用任何分隔符號字元或字串。 -型別安全的儲存格存取:IntValue 和 DateTimeValue 存取器在遇到錯誤資料時傳回安全的預設值,而非拋出例外值。 -範圍操作:跨範圍聚合和查詢數據,無需逐行迭代 -格式轉換:在一個工作流程中載入 CSV 檔案並另存為 XLSX、XLS、PDF 或其他格式。 -資料集整合:將載入的工作簿轉換為 DataSet / Data標籤頁le 格式,以便進行.NET和資料庫操作 -跨平台:無需任何更改即可在 Windows、Linux、macOS、Docker 和雲端環境中運行 IronXL文件和儲存格格式指南提供了有關格式設定、公式支援和進階工作簿操作的更多詳細資訊。 準備好自信地處理 CSV 檔案了嗎? 立即開始免費試用,探索IronXL 的完整功能。 常見問題解答 什麼是 CSV 檔案,為什麼它被廣泛使用? CSV 檔案(即逗號分隔值檔案)是一種用於儲存表格資料的簡單文字格式。由於其簡單且易於使用,CSV 檔案在商業應用程式中被廣泛用於不同系統之間的資料匯出與匯入。 IronXL 如何協助在 C# 中解析 CSV 檔案? IronXL 透過提供強大的工具來處理複雜的 CSV 結構(包括不同的欄位分隔符、帶引號的欄位以及資料型別轉換),從而簡化了 C# 中的 CSV 檔案解析工作。 IronXL 能否將 CSV 資料轉換為其他格式? 是的,IronXL 允許開發人員將 CSV 資料轉換為各種格式,例如 XML 和 Excel,使其能靈活應對不同的資料處理需求。 CSV檔案解析常見挑戰有哪些? 常見挑戰包括處理不同的欄位分隔符、管理帶引號的欄位,以及精確的資料類型轉換。IronXL通過其高級解析能力幫助緩解這些問題。 IronXL適合企業級的CSV處理嗎? 是的,IronXL被設計為企業級準備的,提供穩健和可擴展的CSV檔案處理解決方案,適用於.NET應用程式。 IronXL支援有效率地處理大型CSV檔案嗎? IronXL為效能進行了優化,可有效率地處理大型CSV檔案而不損害速度或準確性。 IronXL可以處理具有自訂分隔符的CSV檔案嗎? 是的,IronXL支援具有自訂分隔符的CSV檔案,為開發者面對非標準CSV格式提供了靈活性。 IronXL 如何處理 CSV 文件中的引用字段? IronXL在CSV檔案中準確解析帶引號的欄位,確保資料完整性並在閱讀過程中進行正確轉換。 哪些程式設計語言可以與IronXL一起使用進行CSV解析? IronXL是一個.NET程式庫,因此可以使用.NET框架支援的語言,如C#和VB.NET。 是否有使用IronXL處理CSV檔案的程式碼範例? 是的,IronXL文檔提供完整的程式碼範例,用於在C#應用程式中讀取、解析和處理CSV檔案。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多 更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多 更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多 如何在C#中打開Excel檔案而不需要Microsoft Office。使用 C# CSV 解析器簡化資料...
更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多
更新2026年3月1日 如何在Blazor中使用IronXL匯出Excel文件 學習如何在Blazor伺服器應用程式中使用IronXL将數據匯出到Excel。此指南涵蓋專案設置、服務設計、條件格式化、多表報告和錯誤處理,附有完整的C#代碼範例。 閱讀更多
更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多