使用 IRONXL 使用 C# 读取 CSV 文件(代码示例教程) Curtis Chau 已更新:七月 28, 2025 下载 IronXL NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 本教程演示了如何使用IronXL C#库在不安装其他互操作的情况下高效、有效地读取CSV文件。 如何在 C# 中逐行读取 CSV 文件 安装 C# 库以逐行读取 CSV 文件 利用高级LoadCSV方法读取 CSV 文件 在 C# 中使用Exists方法捕获加载不存在的文件的错误 使用ToDataTable方法将 CSV 数据转换为数据库。 使用SaveAs方法导出 Excel 文件,CSV 数据会自动转换为 Excel 文件。 如何在C#中读取CSV文件 您必须先安装IronXL,才能在MVC、ASP.NET或.NET Core中使用它读取CSV文件。 这是该过程的基本概述。 在Visual Studio中选择项目菜单,管理NuGet包,并搜索IronXL.Excel,然后安装。 在NuGet包管理器中安装IronXL包 IronXL是在C#中读取CSV文件时一个很好的工具。 下面的代码示例显示您可以使用逗号或其他分隔符读取CSV文件。 // Load a CSV file into a WorkBook object specifying file format and delimiters WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Get the default worksheet from the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook as an Excel file workbook.SaveAs("Csv_To_Excel.xlsx"); // Load a CSV file into a WorkBook object specifying file format and delimiters WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Get the default worksheet from the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook as an Excel file workbook.SaveAs("Csv_To_Excel.xlsx"); ' Load a CSV file into a WorkBook object specifying file format and delimiters Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",") ' Get the default worksheet from the workbook Dim ws As WorkSheet = workbook.DefaultWorkSheet ' Save the workbook as an Excel file workbook.SaveAs("Csv_To_Excel.xlsx") $vbLabelText $csharpLabel 本教程的CSV数据 创建了对象WorkBook。 然后使用WorkBook对象的LoadCSV方法来指示CSV文件的名称、格式和正在读取的CSV文件中使用的分隔符,它们作为字符串数组存储。 在此场景中使用逗号作为分隔符。 之后,创建了一个WorkSheet对象; 这就是CSV文件内容将被存储的地方。 然后将文件重命名并存储为新格式。 然后,CSV文件数据在工作表中以表格形式排列。 输出将如下所示: 数据转换为Excel文件 C# .NET中的CSV解析 CSV在字段中处理换行符以及字段可能用引号括起来方面存在一些问题,这使得简单的字符串分割技术Split("'")无法工作。 相反,IronXL提供了使用LoadCSV方法的可选参数自定义分隔符,检查LoadCSV的API文档以获取更多详细信息。 C#记录 - 读取CSV数据 在下面的示例中,使用foreach循环遍历CSV文件中的行,并使用控制台将数据写入记录。 // Load a CSV file into a WorkBook object specifying file format and delimiters WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Get the default worksheet from the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Convert the worksheet data into a DataTable DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header // Iterate through each row in the DataTable foreach (DataRow row in dt.Rows) { // Iterate through each column in the current row for (int i = 0; i < dt.Columns.Count; i++) { // Output each cell value to the console Console.Write(row[i] + " "); } // New line after each row Console.WriteLine(); } // Load a CSV file into a WorkBook object specifying file format and delimiters WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Get the default worksheet from the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Convert the worksheet data into a DataTable DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header // Iterate through each row in the DataTable foreach (DataRow row in dt.Rows) { // Iterate through each column in the current row for (int i = 0; i < dt.Columns.Count; i++) { // Output each cell value to the console Console.Write(row[i] + " "); } // New line after each row Console.WriteLine(); } ' Load a CSV file into a WorkBook object specifying file format and delimiters Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",") ' Get the default worksheet from the workbook Dim ws As WorkSheet = workbook.DefaultWorkSheet ' Convert the worksheet data into a DataTable Dim dt As DataTable = ws.ToDataTable(True) ' The argument true indicates the first row is header ' Iterate through each row in the DataTable For Each row As DataRow In dt.Rows ' Iterate through each column in the current row For i As Integer = 0 To dt.Columns.Count - 1 ' Output each cell value to the console Console.Write(row(i) & " ") Next i ' New line after each row Console.WriteLine() Next row $vbLabelText $csharpLabel 从CSV文件访问数据并显示在控制台中 将CSV文件字符串行转换为Excel格式 过程很简单:加载CSV文件并将其保存为Excel文件。 // Load a CSV file into a WorkBook object specifying file format and delimiters WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Get the default worksheet from the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook as an Excel file workbook.SaveAs("CsvToExcelConversion.xlsx"); // Load a CSV file into a WorkBook object specifying file format and delimiters WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Get the default worksheet from the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook as an Excel file workbook.SaveAs("CsvToExcelConversion.xlsx"); ' Load a CSV file into a WorkBook object specifying file format and delimiters Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",") ' Get the default worksheet from the workbook Dim ws As WorkSheet = workbook.DefaultWorkSheet ' Save the workbook as an Excel file workbook.SaveAs("CsvToExcelConversion.xlsx") $vbLabelText $csharpLabel 使用IronXL读取和操作转换后的CSV文件 IronXL的WorkBook类表示一个Excel表,并使用此类在C#中打开Excel文件。 下面的代码示例将所需的Excel文件加载到WorkBook对象中: // Load WorkBook from a .xlsx file var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx"); // Load WorkBook from a .xlsx file var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx"); ' Load WorkBook from a .xlsx file Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx") $vbLabelText $csharpLabel WorkSheet对象可以在多个WorkBook中找到。 这些是Excel文档的工作表。 如果工作簿有工作表,可以通过以下方法按名称获取它们: // Open a specific worksheet for reading by its name var worksheet = workbook.GetWorkSheet("sheetnamegoeshere"); // Open a specific worksheet for reading by its name var worksheet = workbook.GetWorkSheet("sheetnamegoeshere"); ' Open a specific worksheet for reading by its name Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere") $vbLabelText $csharpLabel 读取单元格值的代码: // Read and output values from a range of cells elegantly foreach (var cell in worksheet["A2:A10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } // Read and output values from a range of cells elegantly foreach (var cell in worksheet["A2:A10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } ' Read and output values from a range of cells elegantly For Each cell In worksheet("A2:A10") Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text) Next cell $vbLabelText $csharpLabel 下面的代码示例可以在加载和读取工作簿和工作表后更新公式或将它们应用于特定单元格。 以下是代码: // Set formulas for specific cells worksheet["A1"].Formula = "Sum(B8:C12)"; worksheet["B8"].Formula = "=C9/C11"; worksheet["G30"].Formula = "Max(C3:C7)"; // Force recalculate all formula values in all sheets workbook.EvaluateAll(); // Set formulas for specific cells worksheet["A1"].Formula = "Sum(B8:C12)"; worksheet["B8"].Formula = "=C9/C11"; worksheet["G30"].Formula = "Max(C3:C7)"; // Force recalculate all formula values in all sheets workbook.EvaluateAll(); ' Set formulas for specific cells worksheet("A1").Formula = "Sum(B8:C12)" worksheet("B8").Formula = "=C9/C11" worksheet("G30").Formula = "Max(C3:C7)" ' Force recalculate all formula values in all sheets workbook.EvaluateAll() $vbLabelText $csharpLabel 结论和IronXL特别优惠 除了在C#中处理CSV外,IronXL还可以通过两行代码将CSV转换为Excel。 使用IronXL的Excel API是一种无需互操作的简单方法。 此外,IronXL还提供了丰富的功能,可以与Excel工作簿、工作表和单元级别进行交互,例如在流行格式之间转换,单元格数据格式化,合并单元格,插入数学函数, 甚至管理图表和添加图像。 您可以使用IronXL试用许可密钥启动而不带水印。 许可证起价为$799,并包括一年免费支持和更新。 IronPDF、IronXL、IronOCR、IronBarcode和IronWebscraper都是Iron Software套件的一部分。 Iron Software允许您以更低的价格购买其整个软件包。您可以以两种价格使用所有这些工具。 这绝对是一个值得探索的选项。 常见问题解答 我如何在 C# 中读取 CSV 文件? 您可以使用IronXL库在C#中读取CSV文件,使用LoadCSV方法,这允许您将CSV数据加载到WorkBook对象中以进行进一步操作。 在 C# 中将 CSV 数据转换为 Excel 格式的最佳方法是什么? 在C#中将CSV数据转换为Excel格式的最佳方法是使用IronXL。将您的CSV加载到WorkBook对象中,使用SaveAs方法将其保存为Excel文件。 如何使用库在 C# 中处理具有自定义分隔符的 CSV 文件? 使用IronXL,您可以通过在LoadCSV方法中将分隔符指定为可选参数来处理具有自定义分隔符的CSV文件。 我可以直接将 CSV 数据转换为 C# 中的数据库格式吗? 是的,您可以使用IronXL在C#中将CSV数据转换为数据库格式,利用ToDataTable方法将数据转换为适合数据库操作的DataTable对象。 在 C# 中有哪些方法可以检查不存在的 CSV 文件? 在C#中,您可以使用IronXL的Exists方法在尝试加载CSV文件之前检查CSV文件是否存在,从而避免与不存在的文件相关的错误。 在使用 C# 从 CSV 转换为 Excel 后,如何操作 Excel 数据? 在 C# 中将 CSV 转换为 Excel 后,您可以使用 IronXL 的功能来操作数据,例如格式化、合并单元格、插入数学函数以及添加图表或图像。 IronXL 读取和转换 C# 中 CSV 文件有哪些优势? IronXL 提供的优势包括易于安装、无需额外的互操作、支持自定义分隔符,以及在 Excel 中转换和操作 CSV 数据的强大方法。 如何在 C# 中处理 CSV 数据中的特殊字符? IronXL 可以通过允许您在加载 CSV 文件时指定文件编码和分隔符来处理 CSV 数据中的特殊字符,以确保数据的完整性和准确性。 IronXL 用户可获得哪些支持? IronXL 许可证包括一年免费支持和更新,提供帮助并确保您获得最新的功能和修复。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十二月 19, 2025 如何使用 C# Interop 与 IronXL.Excel 在 Excel 中创建透视表 无需 Office 依赖在 C# 中构建 Excel 数据透视表。IronXL 提供强大的数据处理功能,用于创建透视风格的报告,无需 Excel Interop 复杂化。 阅读更多 已发布十二月 18, 2025 C# 使用 IronXL.Excel 将带列标题的 DataGridView 导出到 Excel 学习如何在将DataGridView数据导出到Excel时保留列头。使用IronXL库的C#逐步教程。 阅读更多 已发布十二月 18, 2025 如何在 C# 中使用 IronXL 创建 Excel 报告 在 C# 中使用 IronXL 进行 Excel 报告生成。学习构建具有格式、公式和数据库集成的专业报告。 阅读更多 如何在 C# 中使用 CSV 解析器C# 编程方式打开 Excel 文件...
已发布十二月 19, 2025 如何使用 C# Interop 与 IronXL.Excel 在 Excel 中创建透视表 无需 Office 依赖在 C# 中构建 Excel 数据透视表。IronXL 提供强大的数据处理功能,用于创建透视风格的报告,无需 Excel Interop 复杂化。 阅读更多
已发布十二月 18, 2025 C# 使用 IronXL.Excel 将带列标题的 DataGridView 导出到 Excel 学习如何在将DataGridView数据导出到Excel时保留列头。使用IronXL库的C#逐步教程。 阅读更多
已发布十二月 18, 2025 如何在 C# 中使用 IronXL 创建 Excel 报告 在 C# 中使用 IronXL 进行 Excel 报告生成。学习构建具有格式、公式和数据库集成的专业报告。 阅读更多