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.使用直观的语法获取单元格值: XLS、XLSX 或 CSV 文档。 片材 ["A11"].DecimalValue

In this tutorial, we will walk you through:

  • Installing IronXL.Excel: how to install IronXL.Excel to an existing project.
  • Basic Operations: basic operation steps with Excel to Create or Open workbook, select sheet, select cell, and save the workbook

  • Advanced Sheet Operations: how to utilize different manipulation capabilities like adding headers or footers, mathematical operations files, and other features.

打开 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 包

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

3. 我们完成了

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

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

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

使用 DLL 手动安装

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

教程

## 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报告界面的核心。