C#使用NPOI导出Excel文件
欢迎您成为我的读者,希望这篇文章能给你一些帮助。
前言
今天咱们一起来看看在C#中如何使用NPOI第三方控件进行数据的导出。
关于NPOI插件网上资料很多,大家感兴趣的可以去看看。
本文使用的版本是NPOI 2.5.1。
大家可在包管理器NuGet或者下面网址进行下载。
http://npoi.codeplex.com/ 快速下载地址: //files.cnblogs.com/files/netxiaohui/npoi.2.5.1.zip很多时候,我们在进行数据导出到Excel文件时,在windows平台需要使用到office组件才可以成功导出,也就是说电脑很多时候都必须安装office才可以。今天分享的这个组件,可以在目标主机不安装office的情况下,对Word或Excel进行读写操作。
NPOI的优势
-
开源,可以完全免费使用
-
包含大部分EXCEL的特性
-
支持处理的文件格式包括(xls/xlsx/docx)
-
同时支持导入导出
-
基于.net 2.0/4.0也支持xlsx和docx格式
-
不需要在服务器或目标主机安装office
-
它不仅对Excel进行操作,可以对doc,ppt文件进行操作
NPOI内部构成
NPOI是一个开源的C#读取Excel、Word等微软OLE2组件文件的项目。
在使用NPOI的过程中,有一些名称需要提前了解下。
Workbook工作薄 一个文件包含一个工作簿,一个工作簿可以包含若干个工作表Sheet。
Sheet工作表
HSSFWorkbook用于处理xls文件类型的NPOI操作类,继承自IWorkbook。
XSSFWorkbook处理xlsx文件类型的NPOI操作类,也继承自IWorkbook。
操作xlsx文件进行数据导出工作时,主要有以下几个步骤需要注意。
1、声明XSSFWorkbook实例。
2、利用声明并实例化的工作簿创建其工作表。
3、写入Excel表头和表数据
4、将实例化的工作簿写入流文件中。
实际的导出工作就是上面说的四步,但是在内部需要具体进行一些表格样式、输出字体样式的调整。
具体代码如下:
using(FileStreamfs=newFileStream(sfd.FileName,FileMode.OpenOrCreate,FileAccess.ReadWrite))
{
XSSFWorkbookworkbook=newXSSFWorkbook();
ISheetsheet=workbook.CreateSheet("Sheet1");
string[]excelHeader=newstring[]{"点名称","编号","时间","埋深(m)","水深(m)","测试01","测试02","测试03","测试04","测试05","测试06","测试06","测试07","测试08","测试09"};
IRowheaderRow=sheet.CreateRow(0);
for(inti=0;i<excelHeader.Length;i++)
{
headerRow.CreateCell(i).SetCellValue(excelHeader[i]);
}
intcount=mpInfoDictionary.Count;
for(inti=0;i<count;i++)
{
MeasurementPointInfompi=mpInfoDictionary[i];
IRowrow=sheet.CreateRow(i+1);
row.CreateCell(0).SetCellValue("名称");
row.CreateCell(1).SetCellValue(mpi.nSeq);
row.CreateCell(2).SetCellValue(mpi.nDate.ToString());
row.CreateCell(3).SetCellValue(mpi.dbDepth);
row.CreateCell(4).SetCellValue(mpi.dbWaterDepth);
row.CreateCell(5).SetCellValue(mpi.dbCPTDInfo);
row.CreateCell(6).SetCellValue(mpi.dbCPTDOffInfo);
row.CreateCell(7).SetCellValue(mpi.dbOneDragDisplaceDSe);
row.CreateCell(8).SetCellValue(mpi.dbOneDragDisplaceDSn);
row.CreateCell(9).SetCellValue(mpi.dbOneDragDisplaceDSu);
row.CreateCell(10).SetCellValue(mpi.dbCPInfo);
row.CreateCell(11).SetCellValue(mpi.dbCPOffInfo);
row.CreateCell(12).SetCellValue(mpi.dbDisplaceSE);
row.CreateCell(13).SetCellValue(mpi.dbDisplaceSN);
row.CreateCell(14).SetCellValue(mpi.dbDisplaceSU);
}
workbook.Write(fs);//写入到Excel中
}
可以导出如下所示表格:
本站大部分文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。
如果侵犯了您的权益请来信告知我们删除。邮箱:1451803763@qq.com