C# 写入 Excel [不使用 Interop] 代码示例教程
请按照步骤示例了解如何使用C#创建、打开和保存Excel文件,并执行基本操作,如获取总和、平均值、计数等。 IronXL.Excel 是一个独立的 .NET 软件库,用于读取多种电子表格格式。 它不需要微软Excel安装,也不依赖 Interop。
如何用 C# 编写 Excel 文件
- 下载 Write Excel C# 库
- 创建并打开新的 CSV 或 XML Excel 文件作为 Excel 工作簿
- 保存并导出 Excel 工作簿
- 在多个 Excel 工作表中应用高级操作
- 与 Excel 数据库整合
概述
使用 IronXL 打开和写入 Excel 文件
使用简单易用的 Excel 软件打开、编写、保存和自定义 Excel 文件。 IronXL C# 库
下载 来自 GitHub 的示例项目 或使用您自己的,并按照教程操作。
- 安装 IronXL Excel 库 NuGet 或者DLL下载
- 使用 WorkBook.Load 方法读取任何 XLS、XLSX 或 CSV 文档。
使用直观的语法获取单元格值:
片材 ["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
写入并保存 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")
步骤 1
1. 免费安装 IronXL C# 库
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronXL 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变Excel。
Install-Package IronXL.Excel
考虑安装 IronXL DLL 直接。下载并手动安装到您的项目或GAC表单中: IronXL.zip
手动安装到你的项目中
下载DLLIronXL.Excel 为 .NET 提供了一个灵活且强大的库,用于打开、阅读、编辑和保存 Excel 文件。 它可以安装并用于所有的.NET项目类型,如Windows应用程序、ASP.NET MVC和.NET Core应用程序。
使用 NuGet 为 Visual Studio 项目安装 Excel 库
首先要安装 IronXL.Excel。 要将 IronXL.Excel 库添加到项目中,我们有两种方法:NuGet 包管理器或 NuGet 包管理器控制台。
要使用 NuGet 将 IronXL.Excel 库添加到我们的项目中,我们可以使用可视化界面,即 NuGet 包管理器:
使用 NuGet 包管理器控制台安装
- 运行命令 -> 安装软件包 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",每个国家都有定义国家的属性,如代码、大陆等。
```html2.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>## 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/) 包含对
工作簿
类。教程快速访问
在 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.
查看应用程序接口参考