使用IRONXL

使用 C# 读取 CSV 文件(代码示例教程)

更新 2024年一月29日
分享:

本教程演示了如何使用 IronXL C# 库读取 CSV 文件,而无需安装额外的互操作程序,并且效率高、效果好。

如何用 C&num 读取 CSV 文件;

在 MVC、ASP.NET 或 .NET Core 中使用 IronXL 读取 CSV 文件之前,您必须先安装 IronXL。下面是安装过程的基本介绍。

在 Visual Studio 中选择项目菜单,管理 NuGet 软件包,搜索 IronXL.Excel,然后安装。

使用 C# 阅读 CSV 文件(代码示例教程),图 1:在 NuGet 软件包管理器中安装 IronXL 软件包

在 NuGet 软件包管理器中安装 IronXL 软件包

IronXL 是一个很好的工具,当你需要 读取 CSV 文件 在 C# 中。下面的代码示例表明,您可以使用逗号或其他分隔符读取 CSV 文件。

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("Csv_To_Excel.xlsx")
VB   C#

使用 C# 阅读 CSV 文件(代码示例教程),图 2:本教程使用的 CSV 数据

本教程的CSV 数据**

对象 工作簿 创建。工作簿 "对象的 加载CSV 方法来指示 CSV 文件的名称、格式以及读取 CSV 文件时使用的分隔符,这些信息以字符串数组的形式存储。在这种情况下,逗号被用作分隔符。

之后,一个 工作表 对象;CSV 文件内容将存储在该对象中。然后对文件进行重命名,并以新格式存储。CSV 文件数据将以表格形式排列在工作表中。输出结果如下

使用 C# 读取 CSV 文件(代码示例教程),图 3:数据转换为 Excel 文件

数据转换成 Excel 文件

C# .NET 中的 CSV 解析

CSV 在字段中如何处理换行符以及字段如何用引号括起来方面有几个问题,这使得简单的字符串拆分技术无法工作Split("'").相反,IronXL 提供了使用 "LoadCSV "方法中的可选参数自定义分隔符的功能。 加载CSV 了解更多详情。

C# Records - 读取 CSV 数据

在下面的示例中,"foreach "用于循环查看 CSV 文件中的行,Console 用于将数据写入记录。

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
Dim dt As DataTable = ws.ToDataTable(True) 'parse sheet1 of sample.xlsx file into datatable
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ")
	Next i
	Console.WriteLine()
Next row
VB   C#

使用 C# 读取 CSV 文件(代码示例教程),图 4:从 CSV 文件访问数据并显示到控制台

从 CSV 文件获取数据并显示到控制台

将 CSV 文件字符串行转换为 Excel 格式

程序很简单:加载 CSV 文件并保存为 Excel 文件。

WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;

workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;

workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet

workbook.SaveAs("CsvToExcelConversion.xlsx")
VB   C#

使用 IronXL 读取和操作转换后的 CSV 文件

IronXL 的 "WorkBook "类代表 Excel 工作表,使用该类可在 C# 中打开 Excel 文件。下面的代码示例将把所需的 Excel 文件加载到 WorkBook 对象中:

//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
VB   C#

在许多工作簿中都可以找到 WorkSheet 对象。这些是 Excel 文档的工作表。如果工作簿中有工作表,可以通过以下操作按名称获取它们:

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
VB   C#

读取单元格值的代码:

// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from Ranges of cells elegantly.
For Each cell In worksheet ("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
VB   C#

加载并读取工作簿和工作表后,以下代码示例可更新公式或应用于特定单元格。代码如下:

// Set Formulas
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
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
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()
VB   C#

结论和 IronXL 特别优惠

IronXL 只需两行代码就能将 CSV 转换为 Excel,此外还能用 C# 进行 CSV 处理。

无需 Interop,使用 IronXL 的 Excel API 变得轻而易举。此外,IronXL 还提供了与 Excel 工作簿、工作表和单元格级交互的多种功能,例如 流行格式之间的转换, 单元格数据格式化, 合并单元格, 插入数学函数甚至管理图表和 添加图像.

您可以使用 IronXL 试用版许可密钥.

许可证起价为 $749,包括一年的免费支持和更新。

IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper 都是 IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper 的一部分。 Iron 软件套件.Iron Software 允许您以优惠价格购买他们的整个软件包。您可以用两个工具的价格使用所有这些工具。

这绝对是一个值得探索的选择。

< 前一页
如何在C#中使用CSV解析器
下一步 >
C# 程序化打开 Excel 文件(代码示例教程)

准备开始了吗? 版本: 2024.10 刚刚发布

免费NuGet下载 总下载量: 1,039,965 查看许可证 >