C#NPOI操作Excel详解

简介: C#NPOI操作Excel详解

C# NPOI 是一个基于 .NET Framework 的 Excel 和 Word 操作库。它不仅可以读取和写入 Excel 和 Word 文件,还可以对 Excel 和 Word 文件进行格式化和样式编辑,支持多种常见的文件格式,如XLS,XLSX等。本篇文章将针对C# NPOI操作Excel进行举例详解。

1.引用 NPOI 库

使用 NuGet 包管理器引用 NPOI 库,打开开发环境(Visual Studio)的管理控制面板,选择 NuGet 程序包管理器,并在搜索栏中搜索 NPOI 包,然后添加到项目中。

2.创建或打开 Excel 文件

使用 C# NPOI 提供的 HSSFWorkbook 类,创建一个新的 Excel 文件,如下所示:

//创建新的Excel
HSSFWorkbook workbook = new HSSFWorkbook();
//获取工作簿
HSSFSheet sheet1 = (HSSFSheet)workbook.CreateSheet("Sheet1");

我们也可以使用 C# NPOI 提供的 FileStream 类,打开一个现有的 Excel 文件,如下所示:

FileStream file = new FileStream("test.xls", FileMode.Open);
HSSFWorkbook workbook = new HSSFWorkbook(file);

3.写入数据到 Excel 文件

使用 C# NPOI 提供的 HSSFRow 和 HSSFCell 类,我们可以按顺序写入单元格数据到 Excel 文件,如下所示:

HSSFRow row1 = (HSSFRow)sheet1.CreateRow(0);
HSSFCell cellA1 = (HSSFCell)row1.CreateCell(0);
cellA1.SetCellValue("Name");
HSSFCell cellB1 = (HSSFCell)row1.CreateCell(1);
cellB1.SetCellValue("Age");

在该示例中,我们创建了一个新的行和两个列 A1 和 B1,并分别将 "Name" 和 "Age" 字符串值写入单元格。

对于数值类型的数据,我们可以使用以下代码将其写入单元格:

HSSFRow row2 = (HSSFRow)sheet1.CreateRow(1);
HSSFCell cellA2 = (HSSFCell)row2.CreateCell(0);
cellA2.SetCellValue(1);
HSSFCell cellB2 = (HSSFCell)row2.CreateCell(1);
cellB2.SetCellValue(20);

在该示例中,我们创建了另一行和两个列 A2 和 B2,并将整数值 1 和 20 分别写入单元格。

4.设置单元格样式

使用 C# NPOI 提供的 HSSFFont 和 HSSFCellStyle 类,我们可以设置单元格样式,如下所示:

//创建字体
HSSFFont font = (HSSFFont)workbook.CreateFont();
font.FontHeightInPoints = 12;
font.Boldweight = (short)FontBoldWeight.Bold;
//创建样式
HSSFCellStyle style = (HSSFCellStyle)workbook.CreateCellStyle();
style.Alignment = HorizontalAlignment.Center;
style.VerticalAlignment = VerticalAlignment.Center;
//应用样式和格式到单元格
cellA1.CellStyle = style;
cellA1.SetCellValue("姓名");

在该示例中,我们创建了一个字体对象并设置字体高度和粗细,然后创建一个样式对象并设置水平和垂直对齐属性,最后将样式应用到单元格 A1 中。

5.保存 Excel 文件

使用 C# NPOI 提供的 HSSFWorkbook.Write 方法,我们可以将创建的 Excel 工作簿保存到指定的文件路径,如下所示:

//打开或创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//获取Sheet1工作表
HSSFSheet sheet1 = (HSSFSheet)workbook.CreateSheet("Sheet1");
//写入数据
//设置样式
//保存工作簿到文件
using (FileStream file = new FileStream("test.xls", FileMode.Create))
{
    workbook.Write(file);
}

在该示例中,我们使用 FileStream 将 Excel 工作簿保存到 test.xls 文件,对于已存在的文件,可以使用 FileMode.OpenOrCreate 选项打开或创建文件。

在数据量较大的情况下,使用 NPOI 的代码编写容易出现问题,如在插入单元格时遇到的重复单元格值,从而产生逻辑冲突。需要注意的是,建议在大型数据集的情况下,您可以考虑使用 GridView 控件和 DataSet 来显示和加载数据,然后将数据导出到 Excel 文件。

总结:在C# NPOI操作Excel,我们需要引用相应的 NPOI 库,对于常见的 Excel 操作包括创建或打开文件、写入数据到文件、设置单元格格式和样式、保存文件等,这些操作在 NPOI 中都得到了很好的支持。


相关文章
|
3天前
|
Java Apache 索引
POI操作大全(动态合并单元格,为单元格生成一个自定义的数据显示格式,自定义公式计算结果生成,读取excel,word文件在生成图片,word指定位置生成图片)
POI操作大全(动态合并单元格,为单元格生成一个自定义的数据显示格式,自定义公式计算结果生成,读取excel,word文件在生成图片,word指定位置生成图片)
|
4天前
|
C#
C# 创建Excel并写入内容
C# 创建Excel并写入内容
11 0
|
4天前
|
存储 API C#
C# 实现格式化文本导入到Excel
C# 实现格式化文本导入到Excel
|
4天前
|
数据挖掘 数据库连接 数据处理
精通Excel意味着熟练掌握基础及进阶操作
精通Excel意味着熟练掌握基础及进阶操作,如数据透视表、VBA编程和自定义公式。提升效率的技巧包括善用快捷键、自动化重复任务、巧用公式与函数(如SUM和VLOOKUP)、利用数据透视表分析数据、设置条件格式、建立数据库连接、编写自定义函数、创建数据图表、使用模板和进行分组汇总。这些方法能有效提升数据分析和处理能力,优化工作效率。
112 2
|
4天前
|
C#
C# gridControl 导出Excel
C# gridControl 导出Excel
|
4天前
|
数据库
关于用NPOI导入Excel
关于用NPOI导入Excel
|
4天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
4天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
4天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。