开发手册 欢迎您!
软件开发者资料库

.NET Core(C#)使用NPOI合并Excel(.xls,.xlsx)单元格及设置样式

NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目, 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。本文主要介绍.NET Core(C#)中,使用NPOI合并Excel(.xls,.xlsx)文件单元格及设置样式方法,以及相关的示例代码。

1、安装引用DotNetCore.NPOI

1)使用Nuget界面管理器

搜索"DotNetCore.NPOI",在列表中找到它,点击"安装"

相关文档:VS(Visual Studio)中Nuget的使用

2)使用Package Manager命令安装

PM> Install-Package DotNetCore.NPOI

3)使用.NET CLI命令安装

> dotnet add TodoApi.csproj package DotNetCore.NPOI

2、使用NPOI合并Excel(.xls,.xlsx)单元格及设置样式示例代码

命名空间:

using NPOI.HSSF;
using NPOI.HPSF;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;

示例代码:

HSSFWorkbook hssfworkbook = new HSSFWorkbook();//设置excel必须的文件属性(该属性用来存储 如作者、标题、标记、备注、主题等信息,右键可查看的属性信息)DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();dsi.Company = "NPOI Team";SummaryInformation si = PropertySetFactory.CreateSummaryInformation();si.Subject = "NPOI SDK Example";hssfworkbook.DocumentSummaryInformation = dsi;hssfworkbook.SummaryInformation = si;//新建一个Workbook默认都会新建3个Sheet(标准的Excel文件有3个Sheet)。所以必须加入下面的创建Sheet的代码才能保证生成的文件正常HSSFSheet sheet = (HSSFSheet)hssfworkbook.CreateSheet("new sheet");// hssfworkbook.CreateSheet("Sheet1");// hssfworkbook.CreateSheet("Sheet2");// hssfworkbook.CreateSheet("Sheet3");//建创行IRow row1=sheet.CreateRow(0);//建单元格,比如创建A1位置的单元格:row1.CreateCell(0).SetCellValue(1);//简写 shee1.CreateRow(0).CreateCell(0).SetCellValue("This is a Sample");//把C3:E5合并为一个单元格 并赋值ICell cell= sheet.CreateRow(2).CreateCell(2);cell.SetCellValue("This is a Sample");sheet.AddMergedRegion(new NPOI.SS.Util.Region(2, 2, 4, 4));//设置样式 居中 字体ICellStyle style = hssfworkbook.CreateCellStyle();style.VerticalAlignment = VerticalAlignment.Center;style.Alignment = HorizontalAlignment.Center;IFont font = hssfworkbook.CreateFont();font.FontHeight = 20 * 20;style.SetFont(font);cell.CellStyle = style;//把这个HSSFWorkbook实例写入文件FileStream file = new FileStream("Example1.xls", FileMode.Create);hssfworkbook.Write(file);file.Close();

NPOI源代码:https://github.com/dotnetcore/NPOI