使用 IRONXL C# CSV 庫:使用 IronXL 的完整教學 Jordi Bardia 更新:2026年3月1日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在 C# 中處理 CSV 檔案需要一個能夠處理除簡單行解析之外的其他功能的函式庫。 您需要可靠的編碼檢測、正確的分隔符號處理、強類型識別,並且最好能夠在 CSV 和 Excel 之間移動資料而無需維護兩個單獨的依賴項。 IronXL在一個.NET庫中實現了所有這些功能——無需 Microsoft Office,無需 COM 互通,也無需脆弱的變通方法。 無論您是在伺服器上處理平面資料檔案、建立資料管道,還是向使用者提供電子表格下載, IronXL都為您提供適用於每種格式的統一 API。 如何設定 C# 電子表格庫? 透過NuGet安裝IronXL只需不到一分鐘。 在 Visual Studio 中開啟程式包管理器控制台並執行以下命令,或從任何終端使用.NET CLI: Install-Package IronXL dotnet add package IronXL Install-Package IronXL dotnet add package IronXL SHELL 安裝軟體包後,將命名空間新增至任何需要處理電子表格資料的檔案: using IronXL; using IronXL; $vbLabelText $csharpLabel IronXL 的目標框架為.NET Framework 4.6.2+和所有現代.NET版本(Core、5、6、7、8、9 和 10)。 它可在 Windows、Linux 和 macOS 上運行,因此既適用於桌面工具,也適用於容器化伺服器工作負載。 請造訪IronXL安裝指南,以取得軟體套件來源和授權啟用的逐步說明。 如何在C#中讀取CSV檔? 使用IronXL讀取 CSV 檔案與載入任何電子表格遵循相同的模式。 呼叫 WorkBook.Load 並傳入檔案路徑, IronXL會根據檔案副檔名推斷檔案格式—無需額外配置: // Load a CSV file into a WorkBook WorkBook workBook = WorkBook.Load("sales_data.csv"); // Access the default worksheet WorkSheet workSheet = workBook.DefaultWorkSheet; // Read individual cells by Excel-style address string customerName = workSheet["A2"].StringValue; decimal orderAmount = workSheet["B2"].DecimalValue; // Iterate rows, starting at index 1 to skip the header for (int i = 1; i < workSheet.Rows.Count(); i++) { var row = workSheet.Rows[i]; Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}"); } // Load a CSV file into a WorkBook WorkBook workBook = WorkBook.Load("sales_data.csv"); // Access the default worksheet WorkSheet workSheet = workBook.DefaultWorkSheet; // Read individual cells by Excel-style address string customerName = workSheet["A2"].StringValue; decimal orderAmount = workSheet["B2"].DecimalValue; // Iterate rows, starting at index 1 to skip the header for (int i = 1; i < workSheet.Rows.Count(); i++) { var row = workSheet.Rows[i]; Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}"); } $vbLabelText $csharpLabel WorkBook 物件公開了完整的電子表格模型。 您可以使用熟悉的 Excel 表示法(例如 "A2")來存取單元格,內建的轉換屬性 -- DateTimeValue@@ -- 字串。 有哪些小區尋址選項? 除了單一儲存格存取外, IronXL還支援範圍表示法和行/列迭代。 你可以使用類似 workSheet["A2:C10"] 的範圍表達式來存取矩形單元格區塊,並將其作為扁平集合進行迭代。 當您想要驗證或轉換已知資料塊而無需編寫巢狀循環時,這非常有用: // Access a range and print each value foreach (var cell in workSheet["A2:C10"]) { Console.WriteLine($"{cell.AddressString}: {cell.Value}"); } // Access a range and print each value foreach (var cell in workSheet["A2:C10"]) { Console.WriteLine($"{cell.AddressString}: {cell.Value}"); } $vbLabelText $csharpLabel 對於動態行計數,workSheet.Rows 集合會自動反映已載入的數據,因此您無需硬編碼行計數。 請參閱C# 讀取 CSV 教學課程,以了解更多模式,包括標題偵測和多編碼檔。 如何將 CSV 行對應到自訂物件? 常見的需求是將表格形式的 CSV 資料轉換為類型化的集合。 您可以遍歷每一行,並將每一行投影到普通的 C# 類別中: public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate); WorkBook workBook = WorkBook.Load("sales_data.csv"); WorkSheet workSheet = workBook.DefaultWorkSheet; var records = new List<SalesRecord>(); // Start at row 1 to skip the header row (row 0) for (int i = 1; i < workSheet.Rows.Count(); i++) { var row = workSheet.Rows[i]; records.Add(new SalesRecord( Customer: row.Columns[0].StringValue, Amount: row.Columns[1].DecimalValue, OrderDate: row.Columns[2].DateTimeValue )); } public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate); WorkBook workBook = WorkBook.Load("sales_data.csv"); WorkSheet workSheet = workBook.DefaultWorkSheet; var records = new List<SalesRecord>(); // Start at row 1 to skip the header row (row 0) for (int i = 1; i < workSheet.Rows.Count(); i++) { var row = workSheet.Rows[i]; records.Add(new SalesRecord( Customer: row.Columns[0].StringValue, Amount: row.Columns[1].DecimalValue, OrderDate: row.Columns[2].DateTimeValue )); } $vbLabelText $csharpLabel 這種方法將解析邏輯與業務邏輯清晰地分離,並使應用程式其餘部分中的每個記錄都具有強類型。 如何在C#中寫入CSV檔案? 從頭開始建立 CSV 檔案涉及三個步驟:建立 WorkBook,填入 WorkSheet,然後呼叫 SaveAsCsv。 該過程與建立任何電子表格的方式類似,從而保證了 AP 的一致性,而與輸出格式無關: // Create a new workbook and worksheet WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.CreateWorkSheet("inventory"); // Write header row workSheet["A1"].Value = "Product"; workSheet["B1"].Value = "Quantity"; workSheet["C1"].Value = "Price"; // Write data rows workSheet["A2"].Value = "Widget A"; workSheet["B2"].Value = 250; workSheet["C2"].Value = 9.99; workSheet["A3"].Value = "Gadget B"; workSheet["B3"].Value = 120; workSheet["C3"].Value = 24.50; // Export to CSV workBook.SaveAsCsv("inventory.csv"); // Create a new workbook and worksheet WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.CreateWorkSheet("inventory"); // Write header row workSheet["A1"].Value = "Product"; workSheet["B1"].Value = "Quantity"; workSheet["C1"].Value = "Price"; // Write data rows workSheet["A2"].Value = "Widget A"; workSheet["B2"].Value = 250; workSheet["C2"].Value = 9.99; workSheet["A3"].Value = "Gadget B"; workSheet["B3"].Value = 120; workSheet["C3"].Value = 24.50; // Export to CSV workBook.SaveAsCsv("inventory.csv"); $vbLabelText $csharpLabel SaveAsCsv 處理分隔符號放置、包含逗號的欄位的引用以及換行符號規範化。 您無需手動管理任何這些事項。 IronXL在匯出過程中保留數值類型,以便 Excel 或 pandas 等下游工具將數字讀取為數字,而不是讀取為引號的文字字串。 如何將資料表匯出為 CSV 檔案? 許多應用程式從資料庫中檢索資料到 DataTable。 IronXL可以透過一次呼叫將整個 DataTable 插入工作表中,從而簡化批次匯出操作: DataTable dataTable = GetProductsFromDatabase(); WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.CreateWorkSheet("products"); workSheet.InsertDataTable(dataTable, "A1"); workBook.SaveAsCsv("products.csv"); DataTable dataTable = GetProductsFromDatabase(); WorkBook workBook = WorkBook.Create(); WorkSheet workSheet = workBook.CreateWorkSheet("products"); workSheet.InsertDataTable(dataTable, "A1"); workBook.SaveAsCsv("products.csv"); $vbLabelText $csharpLabel InsertDataTable 方法根據 DataTable 模式寫入列標題,並從您提供的位址開始填入所有行。 對於較大的資料集,這種方法比手動遍歷行要高效得多。 查看匯出為 CSV 的文檔,以了解包括自訂分隔符號和編碼設定在內的選項。 如何在C#中實現CSV和Excel之間的轉換? IronXL最有價值的功能之一是 CSV 和 Excel 格式之間的雙向轉換。 此 API 是對稱的 -- Load 可以讀取任何受支援的格式,而 Save 系列方法可以將資料寫入目標格式: // Convert CSV to Excel WorkBook csvWorkBook = WorkBook.Load("data.csv"); csvWorkBook.SaveAs("data.xlsx"); // Convert Excel back to CSV WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx"); xlsxWorkBook.SaveAsCsv("report.csv"); // Convert CSV to Excel WorkBook csvWorkBook = WorkBook.Load("data.csv"); csvWorkBook.SaveAs("data.xlsx"); // Convert Excel back to CSV WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx"); xlsxWorkBook.SaveAsCsv("report.csv"); $vbLabelText $csharpLabel 這些轉換操作可以保持資料的完整性。 數值保持數值形式,日期欄位保持其類型,公式結果在寫入之前會計算出其計算值。 當您將多工作表 Excel 檔案轉換為 CSV 時, IronXL會自動為每個工作表建立單獨的 CSV 檔案: WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx"); // Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc. multiSheetWorkBook.SaveAsCsv("quarterly_report.csv"); WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx"); // Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc. multiSheetWorkBook.SaveAsCsv("quarterly_report.csv"); $vbLabelText $csharpLabel 這種行為對於下游使用者期望每個文件對應一個主題的報告管道尤其有用。 CSV寫入教學課程還介紹了其他選項,例如指定分隔符號以及控制匯出中包含哪些工作表。 立即開始在您的項目中使用 IronXL 並免費試用。 第一步: 免費啟動 為什麼僅支援 CSV 格式的函式庫無法滿足實際專案的需求? 許多 C# 開發人員從 Microsoft.VisualBasic 中的CsvHelper或文字欄位解析器開始。 兩者都是適用於僅處理 CSV 檔案的工作流程的有效工具。 當需求擴大時,差距就會顯現:利害關係人要求下載 Excel 文件而不是 CSV 文件,財務部門需要保留公式,或安全策略要求對文件進行密碼保護。 這時,僅支援 CSV 的函式庫會迫使你新增第二個依賴項並維護兩個獨立的整合路徑。 統一的電子表格庫從一開始就消除了這種分裂。 IronXL與僅支援 CSV 格式的庫之間的功能比較 能力 IronXL CsvHelper 文字欄位解析器 讀取 CSV 文件 是的 是的 是的 寫入 CSV 文件 是的 是的 不 讀取/寫入 XLSX 文件 是的 不 不 公式評估 是的 不 不 儲存格樣式和格式 是的 不 不 受密碼保護的文件 是的 不 不 需要依賴辦公室 不 不 不 跨平台(.NET 10) 是的 是的 有限的 統一庫還提供哪些額外的電子表格功能? 除了格式轉換之外,能夠同時處理 CSV 和 Excel 的程式庫還能提供電子表格操作,隨著專案的成長,這些操作將變得非常有用。 使用IronXL ,您將獲得: -公式計算-- 您可以在儲存格中寫入類似 =SUM(B2:B10) 的公式,並在沒有 Excel 的情況下讀取計算結果。 -單元格和範圍樣式-- 透過IronXL樣式 API應用字體粗細、背景顏色、數字格式和邊框。 -密碼保護-- 使用 WorkBook.Load("secure.xlsx", "password") 開啟加密工作簿,並以加密方式儲存新檔案。 -命名區域-- 像在 Excel 中一樣定義和引用命名區域,從而簡化公式編寫和資料驗證。 -大文件支援-- IronXL在託管程式碼中處理數據,無需一次性將整個文件加載到內存中,即使對於包含數萬行的文件,也能保持內存使用量的可預測性。 IronXL功能頁面列出了所有支援的操作。 IronXL如何處理跨平台部署? 電子表格庫經常面臨的一個挑戰是平台特定的行為。 依賴 COM 互通的函式庫只能在 Windows 上執行,而呼叫 Office 的函式庫需要安裝 Office。 IronXL是完全託管的程式碼,沒有任何原生依賴項,因此同一個二進位檔案無需更改即可在 Linux 容器、macOS 開發機器和 Windows 伺服器上運行。 這樣一來,部署到Azure 、AWS、Docker 或任何.NET 10 目標平台就變得非常簡單。 對於使用Dapper或Entity Framework Core等工具建立資料管道的開發人員來說, IronXL非常適合作為序列化層——讀取 CSV 輸入,使用 ORM 進行處理,並將結果匯出為 XLSX 或 CSV 檔案。 IronXL 的許可頁面詳細說明了可用於商業用途的許可等級。 下一步計劃是什麼? IronXL為您提供一個統一的 API,用於在任何.NET 10 應用程式中讀取、寫入和轉換 CSV 和 Excel 檔案。 主要優勢顯而易見:不依賴 Office,支援跨平台,單元格值支援強類型,並且當需求發生變化時,可以直接從僅支援 CSV 的專案過渡到完整的電子表格功能。 當你準備好深入研究時,從與你目前專案最相關的主題開始。 如果您主要處理 CSV 匯入管道,那麼上面介紹的讀取和映射模式可以處理大多數實際場景。 如果您的輸出要求有所不同——有時是下游腳本所需的 CSV 文件,有時是最終用戶所需的 XLSX 文件——格式轉換部分展示瞭如何使用單一程式碼庫來同時滿足這兩種需求。 對於建立報告系統或從資料庫匯出結果的團隊來說,InsertDataTable 方法具有良好的可擴展性,並且避免了逐行單元格分配帶來的效能開銷。 結合儲存格樣式,即可產生使用者無需重新格式化即可在 Excel 中直接開啟的報表。 若要繼續進行,請按照以下步驟操作: 使用NuGet安裝庫Install-Package IronXL 或 dotnet add package IronXL。 2.按照IronXL入門指南中的快速入門步驟載入您的第一個 CSV 檔案。 當您需要在同一個專案中同時使用 CSV 和 Excel 格式時,請探索 CSV 到 Excel 格式轉換教學。 查看IronXL物件參考中的API 參考,以了解進階儲存格操作、公式支援和樣式設定。 在IronXL試用許可證頁面開始免費試用-無需信用卡,包含技術支援。 如果您正在評估其他Iron Software工具的選項, IronSoftware 產品套件涵蓋了使用IronPDF生成 PDF、條碼讀取、OCR 等功能——所有這些都共享相同的許可模式和支援管道。 常見問題解答 什麼是 IronXL,它如何幫助 C# 中的 CSV 文件? IronXL 是一個強大的 C# 庫,允許開發人員無縫地讀取、寫入和轉換 CSV 文件。它提供了對 Excel 工作簿的擴展支持,保證高效能和行、列及數據類型的一致處理。 為什麼我要使用 IronXL 而不是像 CsvHelper 這樣的免費庫? 雖然 CsvHelper 適合基本的 CSV 操作,但 IronXL 在 Excel 工作簿支持、增強性能和健壯的數據類型處理方面表現出色,使其適合更複雜的電子表格工作流程。 IronXL 能夠處理 CSV 和 Excel 格式嗎? 是的,IronXL 被設計用於高效處理 CSV 和 Excel 格式,允許您輕鬆地在兩者之間轉換。 IronXL 支持高效能數據處理嗎? IronXL 為高效能而構建,確保數據導入和導出過程順暢,速度和效率最佳化。 是否可以將 IronXL 與現有的電子表格工作流程集成? 絕對可以,IronXL 無縫集成到現有的電子表格工作流程中,增強跨 CSV 和 Excel 格式的數據管理能力。 IronXL 何以適合複雜的 CSV 文件操作? IronXL 提供了強大的功能,如行、列和數據類型的一致處理,使其適合需要超過基本處理的複雜 CSV 文件操作。 我能否使用 IronXL 將 CSV 文件轉換為 Excel? 是的,IronXL 的一個關鍵功能是可以將 CSV 文件轉換為 Excel 格式及反之,以簡化數據管理過程。 IronXL 如何確保可靠的 CSV 文件處理? IronXL 通過其高級功能確保可靠的 CSV 文件處理,其中包括對複雜數據類型的支持以及與 Excel 功能的集成。 使用 IronXL 進行數據導入/導出的好處是什麼? IronXL 提供順暢的數據導入/導出過程,節省開發人員的時間和精力,同時保證各格式間的數據完整性和準確性。 IronXL 對於不熟悉 C# 中 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# CSV到XLSX:將CSV文件轉換為Excel格式如何使用IronXL在C#中將DataSe...
更新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工作簿。 閱讀更多