如何在 C# 中加载现有电子表格

如何在 C# 中加载现有电子表格#。

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用 IronXL 的 WorkBook.Load() 方法将现有的 Excel、CSV、TSV 文件和 DataSet 对象加载到 C# 电子表格中,以获得对 Excel 的完全支持,或使用 LoadCSV() 方法获得对 CSV 格式的支持,从而在 .NET 应用程序中实现无缝数据操作和提取。

CSV(逗号分隔值)文件格式适用于以逗号分隔值的表格数据,常用于数据交换。 TSV(Tab-Separated Values,制表符分隔值)使用制表符分隔值,当数据包含逗号时优先使用。 了解有关文件格式之间转换的更多信息

Microsoft .NET 中的 DataSet 类是 ADO.NET(ActiveX Data Objects for .NET)技术的一部分。 它常用于数据库相关的应用程序中,允许您处理来自各种来源(如数据库、XML 等)的数据。 IronXL.Excel 为导入和导出 DataSet 对象提供了无缝集成。

Excel 文件格式(如 XLSX、XLS、XLSM、XLTX、CSV 和 TSV)中包含的数据以及 DataSet 对象可使用 IronXL.Excel 加载到 Excel 电子表格中。 这种强大的功能使 IronXL 成为在商业应用程序、数据分析项目和自动报告系统中处理电子表格数据的开发人员的必备工具。

as-heading:2(快速入门:加载现有电子表格)

使用 IronXL,只需一个简单的方法,即可将现有的 Excel、CSV 或 TSV 文件加载到 WorkBook 中。 开发人员可以通过调用WorkBook.Load(...)来快速开始编辑或提取数据,以获得完整的 Excel 支持,或者通过LoadCSV(...)专门用于 CSV 格式。 有关全面的 API 文档,请访问 IronXL API Reference

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    IronXL.WorkBook workbook = IronXL.WorkBook.Load("sample.xlsx");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer


如何在 C# 中加载 Excel 电子表格文件?

使用静态方法Load加载现有的 Excel 工作簿。 该方法支持 XLSX、XLS、XLSM、XLTX、CSV 和 TSV 文件格式。 当工作簿使用密码保护时,请将密码作为第二个参数传递给该方法。 该方法还接受字节数组或流形式的工作簿数据,可分别使用专用的 FromByteArrayFromStream 方法。

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")
$vbLabelText   $csharpLabel

加载多种文件格式的灵活性意味着您可以处理传统 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")
$vbLabelText   $csharpLabel

从字节数组或流加载如何?

在现代应用程序中,文件通常来自网络上传、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
$vbLabelText   $csharpLabel

为什么要为 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")
$vbLabelText   $csharpLabel

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 会为 DataSet 中的每个 DataTable 创建单独的工作表。 表格关系通过一致的键值得以保留,使用户在使用导出的 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)
$vbLabelText   $csharpLabel

如需了解涉及数据库集成的更高级应用场景,请浏览我们的 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 中所有加载方法及其参数的详细信息,帮助开发人员有效实现电子表格加载功能。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 1,846,091 | 版本: 2026.2 刚刚发布