C# 写入 Excel [不使用 Interop] 代码示例教程

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

伊莱贾·威廉姆斯

请按照步骤示例了解如何使用C#创建、打开和保存Excel文件,并执行基本操作,如获取总和、平均值、计数等。 IronXL.Excel 是一个独立的 .NET 软件库,用于读取多种电子表格格式。 它不需要微软Excel安装,也不依赖 Interop。


概述

使用 IronXL 打开和写入 Excel 文件

使用简单易用的 Excel 软件打开、编写、保存和自定义 Excel 文件。 IronXL C# 库

下载 来自 GitHub 的示例项目 或使用您自己的,并按照教程操作。

  1. 安装 IronXL Excel 库 NuGet 或者DLL下载
  2. 使用 WorkBook.Load 方法读取任何 XLS、XLSX 或 CSV 文档。
  3. 使用直观的语法获取单元格值: 片材 ["A11"].DecimalValue

    在本教程中,我们将指导您:

  • 安装 IronXL.Excel:如何将 IronXL.Excel 安装到现有项目中。
  • 基本操作:使用Excel创建或打开工作簿、选择工作表、选择单元格以及保存工作簿的基本操作步骤。
  • 高级工作表操作:如何利用不同的操作功能,例如添加页眉或页脚、数学运算文件以及其他功能。

    打开 Excel 文件:快速代码

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-1.cs
using IronXL;

WorkBook workBook = WorkBook.Load("test.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
IronXL.Range range = workSheet["A2:A8"];
decimal total = 0;

// iterate over range of cells
foreach (var cell in range)
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.RowIndex, cell.Value);
    if (cell.IsNumeric)
    {
        // Get decimal value to avoid floating numbers precision issue
        total += cell.DecimalValue;
    }
}

// Check formula evaluation
if (workSheet["A11"].DecimalValue == total)
{
    Console.WriteLine("Basic Test Passed");
}
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("test.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private range As IronXL.Range = workSheet("A2:A8")
Private total As Decimal = 0

' iterate over range of cells
For Each cell In range
	Console.WriteLine("Cell {0} has value '{1}'", cell.RowIndex, cell.Value)
	If cell.IsNumeric Then
		' Get decimal value to avoid floating numbers precision issue
		total += cell.DecimalValue
	End If
Next cell

' Check formula evaluation
If workSheet("A11").DecimalValue = total Then
	Console.WriteLine("Basic Test Passed")
End If
VB   C#

写入并保存 Excel 文件中的更改:快速代码

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-2.cs
workSheet["B1"].Value = 11.54;

// Save Changes
workBook.SaveAs("test.xlsx");
workSheet("B1").Value = 11.54

' Save Changes
workBook.SaveAs("test.xlsx")
VB   C#


步骤 1

1. 免费安装 IronXL C# 库

适用于Excel的C# NuGet库

安装使用 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于Excel的C# NuGet库

安装使用 NuGet

Install-Package IronXL.Excel
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronXLNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变Excel。

适用于Excel的C# NuGet库 nuget.org/packages/IronXL.Excel/
Install-Package IronXL.Excel

考虑安装 IronXL DLL 直接。下载并手动安装到您的项目或GAC表单中: IronXL.zip

手动安装到你的项目中

下载DLL

IronXL.Excel 为 .NET 提供了一个灵活且强大的库,用于打开、阅读、编辑和保存 Excel 文件。 它可以安装并用于所有的.NET项目类型,如Windows应用程序、ASP.NET MVC和.NET Core应用程序。

使用 NuGet 为 Visual Studio 项目安装 Excel 库

首先要安装 IronXL.Excel。 要将 IronXL.Excel 库添加到项目中,我们有两种方法:NuGet 包管理器或 NuGet 包管理器控制台。

要使用 NuGet 将 IronXL.Excel 库添加到我们的项目中,我们可以使用可视化界面,即 NuGet 包管理器:

  1. 使用鼠标 -> 右键单击项目名称 -> 选择管理 NuGet 包

  2. 从浏览选项卡 -> 搜索 IronXL.Excel -> 安装

  3. 我们完成了

使用 NuGet 包管理器控制台安装

  1. 从工具 -> NuGet 包管理器 -> 包管理器控制台

  2. 运行命令 -> 安装软件包 IronXL.Excel -Version 2019.5.2

    使用 DLL 手动安装

    您也可以选择手动安装 DLL 到项目或全局程序集缓存中。 ``` PM > Install-Package IronXL.Excel

    
    <hr class="separator"><h4 class="tutorial-segment-title">教程</h4>

2.基本操作:创建、打开、保存

2.1.示例项目:HelloWorld 控制台应用程序

创建 HelloWorld 项目

2.1.1.打开 Visual Studio

2.1.2.选择创建新项目

2.1.3.选择控制台应用程序(.NET 框架)

2.1.4.给我们的示例命名为 "HelloWorld",然后点击创建

2.1.5.现在我们创建了控制台应用程序

2.1.6.添加 IronXL.Excel => 点击安装

2.1.7.添加我们的前几行,读取 Excel 文件中第 1 张工作表的第 1 个单元格,然后打印

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-3.cs ``` ### 2.2.创建新的 Excel 文件 ####

使用 IronXL 创建新 Excel 文件

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-4.cs ``` ### 2.3.打开(CSV、XML、JSON 列表)为工作簿 ####

2.3.1.打开 CSV 文件

2.3.2 新建一个文本文件,添加姓名和年龄列表(见示例),然后保存为 CSVList.csv

您的代码片段应如下所示

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-5.cs ```

2.3.3.打开 XML 文件 创建一个包含国家列表的 XML 文件:根元素 "countries",子元素 "country",每个国家都有定义国家的属性,如代码、大陆等。

```html United Arab EmiratesUnited KingdomUnited StatesUnited States Minor Outlying Islands```

2.3.4.复制以下代码段,将 XML 作为工作簿打开

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-7.cs ```

2.3.5.以工作簿形式打开 JSON 列表 创建 JSON 国家列表

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-8.cs ```

2.3.6.创建映射到 JSON 的国家模型

以下是类代码片段

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-9.cs ```

2.3.8.添加 Newtonsoft 库,将 JSON 转换为国家模型列表

2.3.9 要将列表转换为数据集,我们必须为列表创建一个新扩展。添加名为 "ListConvertExtension "的扩展类

然后添加以下代码段

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-10.cs ```

最后将该数据集加载到工作簿中

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-11.cs ``` ### 2.4.保存并导出 #### 我们可以使用以下命令之一将 Excel 文件保存或导出为多种文件格式,如".xlsx"、".csv"、".html"。

2.4.1.保存为".xlsx 要保存为".xlsx",请使用 saveAs 函数

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-12.cs ```

2.4.2.保存为 csv ".csv" 文件 要保存为".csv",我们可以使用 SaveAsCsv,并向其传递 2 个参数,第一个参数是文件名和路径,第二个参数是分隔符,如 (“,” 或者 “ ” 或 “:”)

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-13.cs ```

2.4.3.保存为 JSON ".json" 格式 要保存为 Json ".json",请使用 SaveAsJson,如下所示

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-14.cs ```

结果文件应如下所示

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-15.cs ```

2.4.4.保存为 XML".xml "格式 要保存为 xml 格式,请使用 SaveAsXml,如下所示

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-16.cs ```

结果应该是这样的

```html <_x0031_stworksheet><_x0031_stworksheet>Hello World<_x0031_stworksheet>```
## 3. 高级操作:求和、平均、计数等。## 让我们应用常见的Excel函数,如SUM, AVG, Count,并查看每个代码片段。 ### 3.1.总和示例 ####

让我们求出这个列表的总和。我创建了一个 Excel 文件并将其命名为 "Sum.xlsx",然后手动添加了这个数字列表

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-18.cs ``` ### 3.2.平均值示例 ####

使用同一文件,我们可以得到平均值:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-19.cs ``` ### 3.3.计数示例 ####

使用同一个文件,我们还可以获得序列中元素的数量:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-20.cs ``` ### 3.4.最大示例 ####

使用同一个文件,我们可以得到单元格区域的最大值:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-21.cs ```

- 我们可以对 max 函数的结果应用变换函数:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-22.cs ```

本例在控制台中写入 "false"。

### 3.5.最小示例 ####

使用同一个文件,我们可以得到单元格区域的最小值:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-23.cs ``` ### 3.6.阶梯单元格示例 ###

使用同一个文件,我们可以按升序或降序排列单元格:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-24.cs ``` ### 3.7.如果条件示例 ###

使用同一个文件,我们可以使用公式属性来设置或获取单元格的公式:

3.7.1.保存为 XML".xml "格式

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-25.cs ```

7.2.使用上一个示例中生成的文件,我们可以得到单元格的公式:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-26.cs ``` ### 3.8.修剪示例 ####

为了应用修剪功能(消除单元格中所有多余的空格),我在 sum.xlsx 文件中添加了这一列

并使用此代码

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-27.cs ```

因此,您可以以同样的方式应用公式。


## 4. 使用多工作表的工作簿 ## 我们将介绍如何处理具有多个工作表的工作簿。 ### 4.1.从同一工作簿中的多个工作表读取数据 ####

我创建了一个 xlsx 文件,其中包含两张工作表:"工作表 1"、"工作表 2

到目前为止,我们使用 WorkSheets.First() 来处理第一张工作表。在本例中,我们将指定工作表名称并使用它

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-28.cs ``` ### 4.2.为工作簿添加新工作表 ####

我们还可以在工作簿中添加新工作表:

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-29.cs ```
## 5. 与Excel数据库集成## 让我们看看如何将数据导出/导入到数据库。 我创建了一个包含一个有两个列的国家表的 "TestDb" 数据库:Id(int,身份), 国名(字符串) ### 5.1.将数据库中的数据填入 Excel 表格 ####

在此,我们将创建一个新工作表,并将国家表中的数据填入其中

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-30.cs ``` ### 5.2.用 Excel 表中的数据填充数据库 ####

在 TestDb 数据库的国家表中插入数据

```cs :path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-31.cs ```
### 进一步阅读 要了解更多关于使用IronXL的信息,您可以查看本节中的其他教程,以及我们主页上的示例,这些通常足以帮助大多数开发者开始使用。 我们的[API文档](/csharp/excel/object-reference/) 包含对 工作簿 类。

教程快速访问

下载本教程的 C# 源代码

本教程的完整免费 C# for Excel 源代码可作为压缩的 Visual Studio 2017 项目文件下载。

下载

在 GitHub 上探索此教程

GitHub 上有该项目的 C# 和 VB.NET 源代码。

使用此代码,只需几分钟就能轻松上手并运行。该项目保存为 Microsoft Visual Studio 2017 项目,但兼容任何 .NET IDE。

如何在 GitHub 上用 C# 打开和写入 Excel 文件

IronXL 应用程序接口参考

Explore the IronXL 应用程序接口参考, outlining the details of all of IronXL’s features, namespaces, classes, methods fields and enums.

查看应用程序接口参考
.NET Excel库可以彻底改变将数据引入和导出Web应用程序和业务系统的方式。

伊莱贾·威廉姆斯

产品开发工程师

埃利亚是一名开发和测试团队的工程师,负责一个大型企业财务报告系统。埃利亚是IronXL库的早期采用者,将其用在他们的Excel报告界面的核心。