如何在 C# 中读取Excel文件和加载电子表格(IronXL XLSX文件操作指南)
使用 IronXL 的 WorkBook.Load() 方法读取Excel文件并将现有的 Excel、CSV、TSV 文件和 DataSet 对象加载到 C# 电子表格中,支持完整的XLSX文件操作,或使用 LoadCSV() 方法以支持 CSV 格式,从而在.NET应用程序中实现无缝的数据操作和提取。
CSV(逗号分隔值)文件格式适用于以逗号分隔值的表格数据,常用于数据交换。 TSV(Tab-Separated Values,制表符分隔值)使用制表符分隔值,当数据包含逗号时优先使用。 了解有关文件格式之间转换的更多信息。
Microsoft .NET中的 DataSet 类是 ADO .NET (ActiveX 数据对象.NET)技术的一部分。 它常用于数据库相关的应用程序中,允许您处理来自各种来源(如数据库、XML 等)的数据。 IronXL.Excel 为导入和导出 DataSet 对象提供了无缝集成。
使用IronXL可以将 Excel 文件格式(如 XLSX、XLS、XLSM、XLTX、CSV 和 TSV)以及 DataSet 对象中包含的数据加载到 Excel 电子表格中。 这种强大的功能使 IronXL 成为在商业应用程序、数据分析项目和自动报告系统中处理电子表格数据的开发人员的必备工具。
快速入门:加载现有电子表格
使用 IronXL,只需一个简单的方法,即可将现有的 Excel、CSV 或 TSV 文件加载到 WorkBook 中。 开发人员可以通过调用 WorkBook.Load(...) 来快速开始编辑或提取数据以获得完整的 Excel 支持,或者通过调用 LoadCSV(...) 专门用于 CSV 格式。 有关全面的 API 文档,请访问 IronXL API Reference。
最小工作流程(5 个步骤)
- 下载用于加载电子表格的 C# 库
- 准备要加载到电子表格中的文件或数据对象
- 使用`Load`方法将数据加载到工作簿对象中。
- 使用`LoadWorkSheetsFromDataSet`方法从 DataSet 对象加载数据
- 将工作簿导出为 Excel 文件
如何在 C# 中加载 Excel 电子表格文件?
使用静态方法加载现有的 Excel 工作簿。 该方法支持 XLSX、XLS、XLSM、XLTX、CSV 和 TSV 文件格式。 当工作簿使用密码保护时,请将密码作为第二个参数传递给该方法。 该方法还接受工作簿数据作为字节数组或流,分别可以使用专用的 FromByteArray 和 FromStream 方法。
IronXL 的加载功能旨在处理实际应用中的各种情况。 无论您是处理用户上传的文件、从网络流中读取数据,还是处理加密文档,该库都能提供一致、可靠的界面。 Load 方法可根据文件扩展名和内容自动检测文件格式,使其适用于不同的使用场景。
我可以加载哪些文件格式?
:path=/static-assets/excel/content-code-examples/how-to/load-spreadsheet-load-spreadsheet.cs
using IronXL;
// Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
Imports IronXL
' Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
加载多种文件格式的灵活性意味着您可以处理传统 Excel 文件 (XLS)、现代 Excel 工作簿 (XLSX)、支持宏的工作簿 (XLSM) 和模板文件 (XLTX)。 这种兼容性可确保从旧系统顺利迁移,同时支持现代 Excel 功能。 有关创建新电子表格的详细信息,请查看我们的综合指南。
如何处理受密码保护的文件?
处理敏感数据通常需要密码保护。 IronXL.Excel 通过提供密码作为参数,使加载受密码保护的工作簿变得简单:
// Load password-protected Excel file
WorkBook protectedWorkBook = WorkBook.Load("protected.xlsx", "myPassword123");
// Work with the workbook normally
WorkSheet sheet = protectedWorkBook.DefaultWorkSheet;
sheet["B2"].Value = "Updated secure data";
// Save with password protection
protectedWorkBook.SaveAs("updated_protected.xlsx");
// Load password-protected Excel file
WorkBook protectedWorkBook = WorkBook.Load("protected.xlsx", "myPassword123");
// Work with the workbook normally
WorkSheet sheet = protectedWorkBook.DefaultWorkSheet;
sheet["B2"].Value = "Updated secure data";
// Save with password protection
protectedWorkBook.SaveAs("updated_protected.xlsx");
' Load password-protected Excel file
Dim protectedWorkBook As WorkBook = WorkBook.Load("protected.xlsx", "myPassword123")
' Work with the workbook normally
Dim sheet As WorkSheet = protectedWorkBook.DefaultWorkSheet
sheet("B2").Value = "Updated secure data"
' Save with password protection
protectedWorkBook.SaveAs("updated_protected.xlsx")
从字节数组或流加载如何?
在现代应用程序中,文件通常来自网络上传、API 响应或数据库 BLOB 等各种来源。 IronXL 可以优雅地处理这些情况:
// Loading from byte array
byte[] excelBytes = File.ReadAllBytes("sample.xlsx");
WorkBook workBookFromBytes = WorkBook.FromByteArray(excelBytes);
// Loading from stream
using (FileStream stream = new FileStream("sample.xlsx", FileMode.Open))
{
WorkBook workBookFromStream = WorkBook.FromStream(stream);
// Process the workbook
var sheet = workBookFromStream.DefaultWorkSheet;
Console.WriteLine($"Sheet has {sheet.RowCount} rows");
}
// Loading from MemoryStream (common in web applications)
using (MemoryStream memStream = new MemoryStream(excelBytes))
{
WorkBook workBookFromMemory = WorkBook.FromStream(memStream);
}
// Loading from byte array
byte[] excelBytes = File.ReadAllBytes("sample.xlsx");
WorkBook workBookFromBytes = WorkBook.FromByteArray(excelBytes);
// Loading from stream
using (FileStream stream = new FileStream("sample.xlsx", FileMode.Open))
{
WorkBook workBookFromStream = WorkBook.FromStream(stream);
// Process the workbook
var sheet = workBookFromStream.DefaultWorkSheet;
Console.WriteLine($"Sheet has {sheet.RowCount} rows");
}
// Loading from MemoryStream (common in web applications)
using (MemoryStream memStream = new MemoryStream(excelBytes))
{
WorkBook workBookFromMemory = WorkBook.FromStream(memStream);
}
Imports System.IO
' Loading from byte array
Dim excelBytes As Byte() = File.ReadAllBytes("sample.xlsx")
Dim workBookFromBytes As WorkBook = WorkBook.FromByteArray(excelBytes)
' Loading from stream
Using stream As New FileStream("sample.xlsx", FileMode.Open)
Dim workBookFromStream As WorkBook = WorkBook.FromStream(stream)
' Process the workbook
Dim sheet = workBookFromStream.DefaultWorkSheet
Console.WriteLine($"Sheet has {sheet.RowCount} rows")
End Using
' Loading from MemoryStream (common in web applications)
Using memStream As New MemoryStream(excelBytes)
Dim workBookFromMemory As WorkBook = WorkBook.FromStream(memStream)
End Using
为什么要为 CSV 文件使用专用方法?
虽然 Load 方法可以读取所有可用的文件格式,但对于 CSV 文件格式,请使用 LoadCSV 方法以获得最佳处理效果。 CSV 文件具有独特的特性,需要进行专门的处理,如分隔符检测、编码处理和数据类型推断。 在处理国际数据格式或 CSV 文件使用分号或管道等非标准分隔符时,它尤其有用。
什么情况下 LoadCSV 比 Load 更好?
LoadCSV 方法可增强对 CSV 解析的控制,因此当您需要指定自定义分隔符、处理不同的编码或处理大型 CSV 文件时,它是理想之选。 在处理国际数据格式或 CSV 文件使用分号或管道等非标准分隔符时,它尤其有用。
LoadCSV 如何处理特殊字符?
:path=/static-assets/excel/content-code-examples/how-to/load-spreadsheet-load-csv.cs
using IronXL;
// Load CSV file
WorkBook workBook = WorkBook.LoadCSV("sample.csv");
Imports IronXL
' Load CSV file
Private workBook As WorkBook = WorkBook.LoadCSV("sample.csv")
LoadCSV 方法可自动处理各种编码,包括 UTF-8、UTF-16 和 ASCII,确保特殊字符、重音字母和国际符号得到正确保留。 在处理多语言数据或科学符号时,这一点至关重要。 了解有关在 .NET 中编写 CSV 文件以实现完整 CSV 工作流程管理的更多信息。
如何将数据集对象加载到 Excel 中?
Microsoft .NET中的 DataSet 类用于管理和处理断开连接的内存表示形式的数据。 可以使用 LoadWorkSheetsFromDataSet 方法将此 DataSet 加载到工作簿中。 下面的代码示例中,创建了一个空的 DataSet; 然而,更常见的是从数据库查询中实例化 DataSet。
为什么要将 DataSet 转换为 Excel?
将 DataSet 对象转换为 Excel 格式对于报表生成、数据导出和创建用户友好的数据演示至关重要。 商业用户通常喜欢 Excel 格式的数据分析,自动报告经常需要将数据库结果转换为电子表格格式。 这种转换可以实现原始 DataSet 对象中不具备的功能,如 条件格式化、图表创建和公式应用。
Excel 中的数据集关系会发生什么变化?
当加载包含多个相关表格的 DataSet 时, IronXL会为 DataTable 中的每个 DataSet 创建单独的工作表。 表格关系通过一致的键值得以保留,使用户在使用导出的 Excel 文件时能保持数据的完整性。因此,它非常适合导出复杂的数据库模式,同时保持参照完整性。
我能否从数据集加载多个表?
:path=/static-assets/excel/content-code-examples/how-to/load-spreadsheet-load-dataset.cs
using IronXL;
using System.Data;
// Create dataset
DataSet dataSet = new DataSet();
// Create workbook
WorkBook workBook = WorkBook.Create();
// Load DataSet
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
Imports IronXL
Imports System.Data
' Create dataset
Private dataSet As New DataSet()
' Create workbook
Private workBook As WorkBook = WorkBook.Create()
' Load DataSet
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook)
如需了解涉及数据库集成的更高级应用场景,请浏览我们的 Excel to SQL via System.Data.DataSet 指南,该指南演示了 Excel 和数据库之间的双向数据流。
IronXL.Excel 能够将各种数据源加载为 Excel 格式,因此是 .NET 开发人员的宝贵工具。 无论您是在构建报表系统、数据迁移工具还是商业智能应用程序,加载功能都为强大的电子表格操作奠定了基础。 有关更多示例和高级技术,请访问我们的 综合教程部分。
常见问题解答
哪些文件格式可以加载到 C# 电子表格中?
IronXL 支持加载多种文件格式,包括 XLSX、XLS、XLSM、XLTX、CSV 和 TSV 文件以及 DataSet 对象。这种全面的格式支持使 IronXL 适用于 .NET 应用程序中的各种电子表格数据处理需求。
如何用 C# 加载 Excel 文件?
只需一行代码,您就可以使用 IronXL.Excel 的 WorkBook.Load() 方法加载 Excel 文件:IronXL.WorkBook workbook = IronXL.WorkBook.Load("sample.xlsx").对于 CSV 文件,您可以使用 LoadCSV() 方法。
能否加载受密码保护的 Excel 文件?
是的,IronXL 支持加载受密码保护的工作簿。在打开加密的 Excel 文件时,只需将密码作为第二个参数传递给加载方法即可。
CSV 和 TSV 文件格式有什么区别?
CSV(逗号分隔值)使用逗号分隔数值,常用于数据交换。TSV(制表符分隔值)则使用制表符,当数据包含逗号时,人们更倾向于使用制表符。IronXL 支持无缝加载这两种格式。
我能否从文件以外的来源加载 Excel 数据?
是的,IronXL 可以从多个来源加载工作簿数据,包括使用 FromByteArray 方法加载字节数组和使用 FromStream 方法加载流。这种灵活性允许处理来自上传、网络流或内存的文件。
如何在电子表格中使用 DataSet 对象?
IronXL 提供了 LoadWorkSheetsFromDataSet 方法,用于将数据从 ADO.NET DataSet 对象导入 Excel 电子表格。这种集成实现了数据库应用程序与 Excel 工作簿之间的无缝数据传输。
加载和导出电子表格数据的主要步骤是什么?
工作流程包括:1)下载 IronXL 库;2)准备文件或 DataSet;3)使用 Load 方法创建工作簿对象;4)使用 LoadWorkSheetsFromDataSet 进行 DataSet 导入;5)根据需要导出工作簿。
加载方法是否有全面的文档?
是的,IronXL 提供完整的 API 文档,包括 IronXL API Reference 中所有加载方法及其参数的详细信息,帮助开发人员有效实现电子表格加载功能。

