跳至页脚内容
使用 IRONXL

.NET Excel 库(开发者教程)

IronXL使您能够在C#/.NET中用几行代码创建、读取和导出Excel文件,无需安装Microsoft Office,非常适合需要快速Excel集成功能的快速发展的初创公司。

是什么让IronXL成为.NET开发的最佳Excel库?

在本文中,我们将探索IronXL,这是一个Excel库,简化了在.NET中以编程方式处理Microsoft Excel文档的过程。 我们将创建一个Excel电子表格环境以读取Excel工作表编写Excel表格,并将电子表格文件导出为CSV

为什么选择IronXL而不是Microsoft.Office.Interop?

使用C# IronXL .NET Excel库可以读取并将Microsoft Excel创建的文档转换为CSV文件。 IronXL是一个独立的.NET软件库,不需要安装Microsoft Office、Microsoft.Office.Interop.Excel或Excel Interop。 它可以读取多种电子表格格式,而不仅仅是一个静态库。

IronXL的简单C# API使得在.NET环境中轻松读取多个工作表修改生成Excel电子表格。 它完全支持Xamarin,LinuxmacOSAzure,.NET Core应用程序和.NET Framework。

对于需要快速部署的初创公司创始人来说,IronXL消除了对开发和生产服务器上Microsoft Office安装的依赖,大大减少了基础设施的复杂性和许可成本。 库的跨平台支持确保您的Excel处理能力无缝工作,无论您是部署到Linux容器、Azure Functions还是传统Windows服务器。

IronXL支持哪些平台和格式?

广泛的格式支持意味着您可以轻松在不同的电子表格文件类型之间进行转换,无论您是从客户上传导入Excel数据,还是导出为不同格式以满足不同利益相关者的需求。

如何设置.NET项目以使用IronXL?

接下来的部分将展示如何使用IronXL库创建和读取Excel文件。

创建一个新的控制台项目的步骤是什么?

步骤1:启动新项目以创建Excel文件。

启动 Visual Studio 后,从"文件"菜单中选择"新建项目"。

在出现的对话框中,选择"控制台应用程序".NET 项目模板,然后单击"下一步"。

Visual Studio 新项目

输入新项目在"位置"字段中的位置后,您可以输入任何您选择的项目名称。 点击"下一步"按钮继续。

Visual Studio新项目配置页面显示选择Console App模板的C#,跨平台OS选项(Linux, macOS, Windows)和用于输入项目名称和Excel库开发位置的字段 项目配置

我应该选择哪个.NET Framework版本?

使用"Framework"下拉选项选择.NET Framework。 这里我们使用的是 .NET 6.0,这是长期支持的版本。 然后按"创建"。

Visual Studio项目配置窗口显示Console App设置选择了.NET 6.0 LTS框架,以及用于Excel库开发的C#,Linux, macOS, Windows 和 Console平台选项 框架选择

对于初创环境,选择.NET 6.0 LTS确保长期稳定性和支持,减少在关键增长阶段的框架升级需求。 这个版本还提供了出色的性能提升,并且完全兼容Docker部署Azure Functions

如何通过NuGet包管理器安装IronXL?

获取 IronXL 库,以下解决方案需要用到该库。 为此,请在 NuGet 包管理器控制台中输入以下命令:

Install-Package IronXL.Excel

Visual Studio包管理器控制台显示正在执行命令 IronXL 安装

另一种方法是使用 NuGet 包管理器搜索"IronXL"包。 然后,从与 IronXL 相关的所有 NuGet 程序包列表中选择要下载的所需程序包。

NuGet包管理器窗口显示IronXl.Excel包,版本2023.4.13准备安装,显示386K下载,Install按钮突出显示便于Excel库集成 NuGet 软件包管理器

安装过程很简单,可以在一分钟内完成。 对于使用CI/CD管道的团队,可以轻松地将IronXL集成到自动化构建中。 查看许可页面以获取对初创公司友好的价格选项,以及如何在部署管道中应用许可证密钥

如何使用IronXL在C#中创建Excel文件?

利用IronXL,您可以用几行代码创建新的Excel文件! IronXL可以创建XLS(旧的Excel格式)和XLSX(当前格式)文件,如下面的代码示例所示。

生成新的Excel工作簿的最小代码是什么?

using IronXL;

public class IronXLExample
{
    public static void Main(string[] args)
    {
        // Create a new workbook
        WorkBook workbook = WorkBook.Create();

        // Create a new worksheet named "Sheet1"
        WorkSheet worksheet = workbook.CreateWorkSheet("Sheet1");

        // Set the value of cell A1
        worksheet["A1"].Value = "test";

        // Save the workbook to a file
        workbook.SaveAs("sample1.xlsx");
    }
}
using IronXL;

public class IronXLExample
{
    public static void Main(string[] args)
    {
        // Create a new workbook
        WorkBook workbook = WorkBook.Create();

        // Create a new worksheet named "Sheet1"
        WorkSheet worksheet = workbook.CreateWorkSheet("Sheet1");

        // Set the value of cell A1
        worksheet["A1"].Value = "test";

        // Save the workbook to a file
        workbook.SaveAs("sample1.xlsx");
    }
}
$vbLabelText   $csharpLabel

上面的代码展示了如何使用IronXL包创建新的Excel工作簿和工作表。 CreateWorkSheet("Sheet1")函数创建一个具有指定名称的工作表标签。 使用SaveAs方法在指定位置保存更改。

对于更复杂的场景,您可以添加多个工作表应用单元格格式设置单元格数据格式,甚至以编程方式创建Excel图表

// Create a workbook with multiple sheets and formatting
WorkBook workbook = WorkBook.Create();
WorkSheet salesSheet = workbook.CreateWorkSheet("Sales");
WorkSheet revenueSheet = workbook.CreateWorkSheet("Revenue");

// Add headers with formatting
salesSheet["A1"].Value = "Product";
salesSheet["B1"].Value = "Quantity";
salesSheet["C1"].Value = "Revenue";

// Apply bold formatting to headers
salesSheet["A1:C1"].Style.Font.Bold = true;

// Add data with number formatting
salesSheet["A2"].Value = "Widget A";
salesSheet["B2"].Value = 150;
salesSheet["C2"].Value = 4500.00;
salesSheet["C2"].FormatString = "$#,##0.00"; // Currency format

// Auto-size columns for better readability
salesSheet.AutoSizeColumn(0);
salesSheet.AutoSizeColumn(1);
salesSheet.AutoSizeColumn(2);

workbook.SaveAs("sales_report.xlsx");
// Create a workbook with multiple sheets and formatting
WorkBook workbook = WorkBook.Create();
WorkSheet salesSheet = workbook.CreateWorkSheet("Sales");
WorkSheet revenueSheet = workbook.CreateWorkSheet("Revenue");

// Add headers with formatting
salesSheet["A1"].Value = "Product";
salesSheet["B1"].Value = "Quantity";
salesSheet["C1"].Value = "Revenue";

// Apply bold formatting to headers
salesSheet["A1:C1"].Style.Font.Bold = true;

// Add data with number formatting
salesSheet["A2"].Value = "Widget A";
salesSheet["B2"].Value = 150;
salesSheet["C2"].Value = 4500.00;
salesSheet["C2"].FormatString = "$#,##0.00"; // Currency format

// Auto-size columns for better readability
salesSheet.AutoSizeColumn(0);
salesSheet.AutoSizeColumn(1);
salesSheet.AutoSizeColumn(2);

workbook.SaveAs("sales_report.xlsx");
$vbLabelText   $csharpLabel

Microsoft Excel界面显示通过编程方式创建的工作簿,A1单元格中输入了 Excel 输出

哪里可以找到更多创建Excel文件的示例?

要了解更多有关创建Excel文件的信息,请查看这个教程,在.NET中创建一个。 您还可以探索如何在没有Interop的情况下在C#中处理Excel文件,以及以编程方式创建Excel图表

如何读取Excel数据并导出为不同格式?

将数据导出为XLSX或XLS格式只需要几行代码。 以下是可以用于将数据从Excel文件导出为简单表格格式的源代码:

我需要什么代码来加载和修改现有的Excel文件?

using IronXL;

public class ExcelReadExportExample
{
    public static void Main(string[] args)
    {
        // Load an existing Excel file
        var workbook = WorkBook.LoadExcel("Demo file.xlsx");

        // Get a worksheet from the workbook
        WorkSheet workSheet = workbook.GetWorkSheet("Sheet1");

        // Read the value of cell A1
        string addressVal = workSheet["A1"].ToString();
        Console.WriteLine(addressVal);

        // Modify the value of cell A2
        workSheet["A2"].Value = "test";

        // Save the workbook in multiple formats
        workbook.SaveAs("export.xlsx");
        // Or save as XLS
        workbook.SaveAs("export.xls");
        // Or save the specific worksheet as an XLS file
        workbook.WorkSheets[0].SaveAs("export.xls");
    }
}
using IronXL;

public class ExcelReadExportExample
{
    public static void Main(string[] args)
    {
        // Load an existing Excel file
        var workbook = WorkBook.LoadExcel("Demo file.xlsx");

        // Get a worksheet from the workbook
        WorkSheet workSheet = workbook.GetWorkSheet("Sheet1");

        // Read the value of cell A1
        string addressVal = workSheet["A1"].ToString();
        Console.WriteLine(addressVal);

        // Modify the value of cell A2
        workSheet["A2"].Value = "test";

        // Save the workbook in multiple formats
        workbook.SaveAs("export.xlsx");
        // Or save as XLS
        workbook.SaveAs("export.xls");
        // Or save the specific worksheet as an XLS file
        workbook.WorkSheets[0].SaveAs("export.xls");
    }
}
$vbLabelText   $csharpLabel

如何通过名称或索引访问工作表?

在前面的示例中,使用LoadExcel方法加载现有Excel文件,该方法接受文件名和路径作为参数。 文件随后被导入到WorkBook对象中。 使用GetWorkSheet函数通过指定工作表名称加载工作表。 可以通过指定单元格的地址来读取单元格的值。 代码还演示了通过SaveAs方法修改工作表值并以不同文件格式保存工作簿。

IronXL提供灵活的方式选择范围读取CSV文件和处理各种数据结构。 这是一个扩展示例,展示了访问和操作Excel数据的不同方法:

// Load workbook from various sources
WorkBook workbook = WorkBook.Load("data.xlsx");

// Access worksheets in multiple ways
WorkSheet sheet1 = workbook.WorkSheets[0]; // By index
WorkSheet sheet2 = workbook.GetWorkSheet("Sheet2"); // By name

// Read data from ranges
var range = sheet1["A1:C10"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.Address}: {cell.Value}");
}

// Convert to DataTable for easier processing
DataTable dataTable = sheet1.ToDataTable(true);

// Export to various formats
workbook.SaveAs("output.csv"); // CSV format
workbook.SaveAsJson("output.json"); // JSON format
workbook.SaveAsXml("output.xml"); // XML format
// Load workbook from various sources
WorkBook workbook = WorkBook.Load("data.xlsx");

// Access worksheets in multiple ways
WorkSheet sheet1 = workbook.WorkSheets[0]; // By index
WorkSheet sheet2 = workbook.GetWorkSheet("Sheet2"); // By name

// Read data from ranges
var range = sheet1["A1:C10"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.Address}: {cell.Value}");
}

// Convert to DataTable for easier processing
DataTable dataTable = sheet1.ToDataTable(true);

// Export to various formats
workbook.SaveAs("output.csv"); // CSV format
workbook.SaveAsJson("output.json"); // JSON format
workbook.SaveAsXml("output.xml"); // XML format
$vbLabelText   $csharpLabel

控制台窗口显示使用IronXL .NET库示例代码读取Excel单元格数据成功输出'test' 控制台输出

Excel文件可用的导出选项有哪些?

可以通过名称或索引值引用工作表,以将数据从Excel电子表格导出到单独的文件。IronXL支持导出到多种格式,包括CSVJSON, XMLHTML。 您还可以导出到DataSet和DataTable,以无缝集成到您的.NET数据处理管道中。

对于需要与各种系统集成的初创团队,IronXL的导出功能可实现快速的数据交换。 您可以从SQL数据库加载Excel更新Excel的数据库记录或通过DataTable处理Excel数据,进行快速原型设计和MVP开发。

IronXL接下来该怎么做?

从创建新文件到执行精确计算,IronXL都能满足您所有的Excel项目需求。 今天,我们探索了如何使用IronXL创建、读取和导出Excel文件,并了解到只需几行代码,您就可以完全控制这些过程。

IronXL提供了哪些高级功能?

对于涉及Microsoft Excel文档的每个可编程任务,IronXL提供了全面的解决方案。 您可以进行公式计算排序字符串或数字、剪切和添加数据、查找和替换、合并和取消合并单元格可视化数据,并保存文件。 您还可以设置单元格数据类型并验证电子表格数据。 具备读取和写入 CSV 文件的能力,可以与 Excel 数据进行交互。

其他高级功能包括:

初创团队的定价模型是什么?

IronXL的启动费用为$799,但客户可以选择支付一年的会员费以获得改进和产品支持。 IronXL 会收取额外的安全费,允许不受限制地重新分发。 访问此许可页面以了解更多定价细节。

对于初创公司,IronXL提供开发人员许可证,让您可以在无任何限制的情况下评估库。 许可模式透明无隐性费用,您可以从单个开发人员许可证开始,然后随着团队的扩大升级。 查看疑难解答指南以了解在不同部署场景中应用许可证的方法。

无论您是在构建Blazor应用程序,在AWS Lambda上部署,使用.NET MAUI开发,还是创建ASP.NET Web应用程序,IronXL都提供了所需的灵活性和性能,让您的Excel功能迅速上线,而无需担心微软Office依赖项。

常见问题解答

如何在不使用Interop的情况下在.NET中创建和读取Excel文件?

使用IronXL,您可以轻松地在.NET中创建和读取Excel文件,而无需依赖Microsoft Office Interop。您可以使用WorkBook.Create()方法创建新的Excel文件,并使用LoadExcel读取已有的文件。

使用独立的.NET Excel库有什么好处?

像IronXL这样的独立.NET Excel库的优点是不需要安装Microsoft Office或Interop。它允许跨不同平台(如Windows、macOS和Linux)无缝读取、写入和导出Excel文件。

如何以编程方式将Excel文件转换为CSV格式?

IronXL提供功能轻松将Excel文件转换为CSV格式。使用SaveAs方法将您的Excel工作簿导出为CSV文件格式。

哪个平台与IronXL兼容,用于处理Excel文件?

IronXL兼容包括Xamarin、Linux、macOS、Azure、.NET Core和.NET Framework在内的多个平台,为在不同环境中工作的开发人员提供灵活性。

使用IronXL可以在Excel列中处理哪些类型的数据?

IronXL支持广泛的数据类型,包括文本、整数、日期、货币、公式和百分比,用于Excel列中的灵活数据处理。

如何使用.NET库在Excel电子表格中执行计算?

使用IronXL,您可以通过编程方式使用公式在Excel电子表格中执行计算。这样可以自动化复杂的计算和数据处理任务。

是否可以使用.NET库处理Excel文件中的多个工作表?

是的,IronXL允许您在一个Excel文件中处理多个工作表。您可以轻松访问、修改并通过其API在不同工作表之间导出数据。

如何在.NET Core项目中设置IronXL?

要在.NET Core项目中设置IronXL,您可以通过NuGet包管理器安装。在包管理器控制台中使用命令Install-Package IronXL.Excel,或者通过Visual Studio中的NuGet包管理器添加。

IronXL有哪些许可和定价选项?

IronXL提供各种许可选项,包括为改进和支持支付的一年会员费。安全功能和无限制再分发权可能会产生额外费用。

Curtis Chau
技术作家

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

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

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我