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 中都得到了很好的支持。


相关文章
|
4月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
2月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
5月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
81 0
|
3月前
|
文字识别 C# Python
使用C#将几个Excel文件合并去重分类
使用C#将几个Excel文件合并去重分类
32 3
|
3月前
|
数据库
C#Winform使用NPOI获取word中的数据
C#Winform使用NPOI获取word中的数据
178 2
|
3月前
|
开发框架 算法 .NET
C#使用MiniExcel导入导出数据到Excel/CSV文件
C#使用MiniExcel导入导出数据到Excel/CSV文件
75 0
Excel如何使用VBA操作引用其它工作簿中的单元格
Excel引用其它工作簿中的单元格的值及使用VBA操作
|
5月前
|
Python
【干货】python xlwt写入excel操作
【干货】python xlwt写入excel操作
|
5月前
|
C#
【C#】C#读写Excel文件
【C#】C#读写Excel文件
127 1
|
5月前
|
图形学
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
173 0