使用 C# 读取Excel文件和 CSV 文件(IronXL Excel数据提取指南)
IronXL 提供了一种使用 LoadCSV 方法在 C# 中读取 CSV 文件的单行解决方案,是实现Excel数据提取和XLSX文件操作的高效工具。 它支持自定义分隔符和直接转换为 Excel 格式,以便在 .NET 应用程序中进行无缝数据处理。
快速入门:使用IronXL一行代码加载并转换 CSV 文件
本示例展示了如何使用 IronXL 的 LoadCSV 方法读取 CSV 文件,并以最少的代码将其保存为 Excel 工作簿。
- 下载并安装 C# CSV 读取库
- 创建一个 C# 或 VB 项目
- 将此页面上的代码示例添加到您的项目中
- Specify the CSV path and output name & format
- 运行项目查看文档
- 安装用于读取 CSV 文件的 C# 库 (IronXL)
- 在 C# 中读取 CSV 文件
- 指定文件格式和分隔符
步骤1
如何安装 IronXL 库?
在 MVC、ASP 或 .NET Core 中使用 IronXL 读取 CSV 文件之前,您需要安装它。 下面是一个快速攻略。
为什么要使用 NuGet 包管理器?
在 Visual Studio 中,选择"项目"菜单
- 管理 NuGet 程序包 搜索 IronXL.Excel
- 安装
哪些是替代安装方法?
Or download from the Iron Software website: https://ironsoftware.com/csharp/excel/packages/IronXL.zip
For .NET developers working with Docker containers, IronXL can be configured in your Docker environment. The library also supports deployment on Azure Functions and AWS Lambda for cloud-based CSV processing.
如何使用教程
如何以编程方式读取 CSV 文件?
现在开始项目!
我需要导入哪个命名空间?
添加 IronXL 命名空间:
// This namespace is required to access the IronXL functionalities
using IronXL;
// This namespace is required to access the IronXL functionalities
using IronXL;
' This namespace is required to access the IronXL functionalities
Imports IronXL
如何加载和转换 CSV 文件?
添加代码,使用 IronXL 和 C# 以编程方式读取 CSV 文件:
:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-read.cs
// Load the CSV file into a WorkBook object, specifying the file path, format, and delimiter
WorkBook workbook = WorkBook.LoadCSV("Read_CSV_Ex.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ",");
// Access the default worksheet within the loaded workbook
WorkSheet ws = workbook.DefaultWorkSheet;
// Save the workbook as an Excel file with a specified name
workbook.SaveAs("Csv_To_Excel.xlsx");
' Load the CSV file into a WorkBook object, specifying the file path, format, and delimiter
Dim workbook As WorkBook = WorkBook.LoadCSV("Read_CSV_Ex.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=",")
' Access the default worksheet within the loaded workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet
' Save the workbook as an Excel file with a specified name
workbook.SaveAs("Csv_To_Excel.xlsx")
有哪些高级 CSV 阅读选项?
IronXL 提供了处理各种配置的 CSV 文件的功能。 您可以指定不同的分隔符(分号、制表符、管道)并处理不同编码的文件:
// Example: Reading CSV with custom delimiter and encoding
WorkBook workbook = WorkBook.LoadCSV("data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";", // Using semicolon as delimiter
encoding: Encoding.UTF8);
// Access specific cells after loading
var cellValue = workbook.DefaultWorkSheet["A1"].Value;
// Iterate through rows
foreach (var row in workbook.DefaultWorkSheet.Rows)
{
// Process each row
foreach (var cell in row)
{
Console.WriteLine(cell.Value);
}
}
// Example: Reading CSV with custom delimiter and encoding
WorkBook workbook = WorkBook.LoadCSV("data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";", // Using semicolon as delimiter
encoding: Encoding.UTF8);
// Access specific cells after loading
var cellValue = workbook.DefaultWorkSheet["A1"].Value;
// Iterate through rows
foreach (var row in workbook.DefaultWorkSheet.Rows)
{
// Process each row
foreach (var cell in row)
{
Console.WriteLine(cell.Value);
}
}
Imports System
Imports IronXL
' Example: Reading CSV with custom delimiter and encoding
Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv",
fileFormat:=ExcelFileFormat.XLSX,
listDelimiter:=";", ' Using semicolon as delimiter
encoding:=Encoding.UTF8)
' Access specific cells after loading
Dim cellValue = workbook.DefaultWorkSheet("A1").Value
' Iterate through rows
For Each row In workbook.DefaultWorkSheet.Rows
' Process each row
For Each cell In row
Console.WriteLine(cell.Value)
Next
Next
CSV 文件在处理前是什么样子?
LoadCSV 方法如何工作?
已创建一个 Workbook 对象。 LoadCSV 对象的方法指定要读取的 CSV 文件、要读取到的格式以及分隔符。 在本例中,使用逗号作为分隔符。
在放置 CSV 内容的位置创建一个 Worksheet 对象。 然后以新的名称和格式保存文件。 This process is useful when you need to convert between different spreadsheet formats.
我能否高效处理大型 CSV 文件?
IronXL 对性能进行了优化,可高效处理大型 CSV 文件。 For developers working with substantial datasets, the library offers significant performance improvements in recent versions. 在处理大文件时,请考虑以下最佳实践:
// Reading large CSV files with memory optimization
WorkBook workbook = WorkBook.LoadCSV("large_dataset.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ",");
// Process data in chunks
var worksheet = workbook.DefaultWorkSheet;
int rowCount = worksheet.RowCount;
int batchSize = 1000;
for (int i = 0; i < rowCount; i += batchSize)
{
// Process rows in batches
var endIndex = Math.Min(i + batchSize, rowCount);
for (int j = i; j < endIndex; j++)
{
var row = worksheet.GetRow(j);
// Process individual row
}
}
// Reading large CSV files with memory optimization
WorkBook workbook = WorkBook.LoadCSV("large_dataset.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ",");
// Process data in chunks
var worksheet = workbook.DefaultWorkSheet;
int rowCount = worksheet.RowCount;
int batchSize = 1000;
for (int i = 0; i < rowCount; i += batchSize)
{
// Process rows in batches
var endIndex = Math.Min(i + batchSize, rowCount);
for (int j = i; j < endIndex; j++)
{
var row = worksheet.GetRow(j);
// Process individual row
}
}
Imports System
Imports IronXL
' Reading large CSV files with memory optimization
Dim workbook As WorkBook = WorkBook.LoadCSV("large_dataset.csv",
fileFormat:=ExcelFileFormat.XLSX,
listDelimiter:=",")
' Process data in chunks
Dim worksheet = workbook.DefaultWorkSheet
Dim rowCount As Integer = worksheet.RowCount
Dim batchSize As Integer = 1000
For i As Integer = 0 To rowCount - 1 Step batchSize
' Process rows in batches
Dim endIndex As Integer = Math.Min(i + batchSize, rowCount)
For j As Integer = i To endIndex - 1
Dim row = worksheet.GetRow(j)
' Process individual row
Next
Next
如何将 CSV 数据导出为其他格式?
阅读 CSV 文件后,您可能需要将数据导出为各种格式。 IronXL supports multiple export options including XLSX to CSV conversion, JSON, XML, and HTML. 以下是导出为不同格式的方法:
// Load CSV and export to multiple formats
WorkBook workbook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ",");
// Export to different formats
workbook.SaveAs("output.xlsx"); // Excel format
workbook.SaveAsJson("output.json"); // JSON format
workbook.SaveAsXml("output.xml"); // XML format
// Export specific worksheet to CSV with custom delimiter
workbook.DefaultWorkSheet.SaveAs("output_custom.csv", ";");
// Load CSV and export to multiple formats
WorkBook workbook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ",");
// Export to different formats
workbook.SaveAs("output.xlsx"); // Excel format
workbook.SaveAsJson("output.json"); // JSON format
workbook.SaveAsXml("output.xml"); // XML format
// Export specific worksheet to CSV with custom delimiter
workbook.DefaultWorkSheet.SaveAs("output_custom.csv", ";");
' Load CSV and export to multiple formats
Dim workbook As WorkBook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ",")
' Export to different formats
workbook.SaveAs("output.xlsx") ' Excel format
workbook.SaveAsJson("output.json") ' JSON format
workbook.SaveAsXml("output.xml") ' XML format
' Export specific worksheet to CSV with custom delimiter
workbook.DefaultWorkSheet.SaveAs("output_custom.csv", ";")
如何在 Web 应用程序中处理 CSV 数据?
For ASP.NET developers, IronXL provides seamless integration for reading CSV files in web applications. 您可以在 MVC 或 Web API 项目中上传和处理 CSV 文件:
// Example: Processing uploaded CSV file in ASP.NET
public ActionResult UploadCSV(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
// Save uploaded file temporarily
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/"), fileName);
file.SaveAs(path);
// Load and process CSV
WorkBook workbook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",");
// Convert to DataTable for easy display
var dataTable = workbook.DefaultWorkSheet.ToDataTable();
// Clean up temporary file
System.IO.File.Delete(path);
return View(dataTable);
}
return RedirectToAction("Index");
}
// Example: Processing uploaded CSV file in ASP.NET
public ActionResult UploadCSV(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
// Save uploaded file temporarily
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/"), fileName);
file.SaveAs(path);
// Load and process CSV
WorkBook workbook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",");
// Convert to DataTable for easy display
var dataTable = workbook.DefaultWorkSheet.ToDataTable();
// Clean up temporary file
System.IO.File.Delete(path);
return View(dataTable);
}
return RedirectToAction("Index");
}
Imports System.IO
Imports System.Web
Imports IronXL
Public Function UploadCSV(file As HttpPostedFileBase) As ActionResult
If file IsNot Nothing AndAlso file.ContentLength > 0 Then
' Save uploaded file temporarily
Dim fileName As String = Path.GetFileName(file.FileName)
Dim path As String = Path.Combine(Server.MapPath("~/App_Data/"), fileName)
file.SaveAs(path)
' Load and process CSV
Dim workbook As WorkBook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",")
' Convert to DataTable for easy display
Dim dataTable As DataTable = workbook.DefaultWorkSheet.ToDataTable()
' Clean up temporary file
System.IO.File.Delete(path)
Return View(dataTable)
End If
Return RedirectToAction("Index")
End Function
如何处理包含复杂数据的 CSV 文件?
在处理包含公式、特殊字符或混合数据类型的 CSV 文件时,IronXL 提供了强大的处理能力。 You can work with formulas and format cell data appropriately:
// Handle CSV with special requirements
WorkBook workbook = WorkBook.LoadCSV("complex_data.csv",
ExcelFileFormat.XLSX,
listDelimiter: ",");
var worksheet = workbook.DefaultWorkSheet;
// Apply formatting to cells
worksheet["A1:A10"].Style.Font.Bold = true;
worksheet["B1:B10"].FormatString = "$#,##0.00"; // Currency format
// Add formulas after loading CSV data
worksheet["D1"].Formula = "=SUM(B1:B10)";
// Handle CSV with special requirements
WorkBook workbook = WorkBook.LoadCSV("complex_data.csv",
ExcelFileFormat.XLSX,
listDelimiter: ",");
var worksheet = workbook.DefaultWorkSheet;
// Apply formatting to cells
worksheet["A1:A10"].Style.Font.Bold = true;
worksheet["B1:B10"].FormatString = "$#,##0.00"; // Currency format
// Add formulas after loading CSV data
worksheet["D1"].Formula = "=SUM(B1:B10)";
Imports IronXL
' Handle CSV with special requirements
Dim workbook As WorkBook = WorkBook.LoadCSV("complex_data.csv", ExcelFileFormat.XLSX, listDelimiter:=",")
Dim worksheet = workbook.DefaultWorkSheet
' Apply formatting to cells
worksheet("A1:A10").Style.Font.Bold = True
worksheet("B1:B10").FormatString = "$#,##0.00" ' Currency format
' Add formulas after loading CSV data
worksheet("D1").Formula = "=SUM(B1:B10)"
图书馆快速访问
使用便捷的 IronXL API 参考文档,了解更多并分享如何在 Excel 电子表格中合并、取消合并和处理单元格。
IronXL API 参考文档常见问题解答
如何用 C# 快速读取 CSV 文件?
IronXL 提供了使用 LoadCSV 方法在 C# 中读取 CSV 文件的单行解决方案。只需使用WorkBook wb = WorkBook.LoadCSV("data.csv",ExcelFileFormat.XLSX,listDelimiter: ",");这将加载 CSV 文件,并允许您使用 wb.SaveAs("output.xlsx") 将其保存为 Excel 工作簿。
CSV 阅读库有哪些安装方法?
您可以通过 Visual Studio 中的 NuGet 包管理器搜索 "IronXL.Excel "安装 IronXL,也可以直接从 Iron Software 网站下载。该库还支持 Docker 容器、Azure Functions 和 AWS Lambda,用于基于云的 CSV 处理。
读取 CSV 文件时可以使用自定义分隔符吗?
是的,IronXL 支持各种分隔符,包括分号、制表符和管道。您可以使用 LoadCSV 方法中的 listDelimiter 参数指定分隔符,例如WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ";").
为实现 CSV 阅读功能,我需要导入哪个命名空间?
您需要在 C# 文件顶部添加 "using IronXL;",以访问 IronXL 读取和处理 CSV 文件的所有功能。
加载 CSV 文件后,如何访问特定的单元格值?
使用 IronXL 的 LoadCSV 方法加载 CSV 文件后,您可以使用以下方法访问特定单元格: var cellValue = workbook.DefaultWorkSheet["A1"].Value; 这样您就可以从加载的 CSV 中检索和操作单个单元格数据。
读取 CSV 文件时,库是否支持不同的文件编码?
是的,IronXL 支持包括 UTF8 在内的各种编码。您可以在加载 CSV 文件时指定编码参数:WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, encoding: Encoding.UTF8)。
我可以直接将 CSV 文件转换为 Excel 格式吗?
是的,IronXL 允许将 CSV 直接转换为 Excel 格式。使用 LoadCSV 加载 CSV 文件后,您可以立即使用 SaveAs 方法将其保存为 Excel 文件,并指定 XLSX 或 XLS 等格式。

