基于NPOI导出Excel文件的与实现

时间:2024-01-17 点赞:48720 浏览:97124 作者原创标记本站原创

该文为关于文件方面毕业论文的格式范文,与基于NPOI导出Excel文件的与实现相关论文参考文献格式,可作为论文格式专业文件论文写作研究的大学硕士与本科毕业论文开题报告范文和职称论文参考文献资料。免费下载教你怎么写文件及程序及对象方面的优秀学术论文范文。

[摘 要] 在基于B/S结构进行开发的应用系统中,“文件导出”是一项很重要的功能,利用它可以导出相关的业务数据,以便进行资料保存或者不同业务间的数据交互.本文就如何利用NPOI导出一个真正的Excel文件进行研究与分析.

[关 键 词 ] NPOI; 导出; Excel文件

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2013 . 15. 061

[中图分类号] TP294 [文献标识码] A [文章编号] 1673 - 0194(2013)15- 0093- 02

1.导出Excel文件的传统方法

在进行Excel文件导出时,传统的方法一般都是利用Excel程序自身能够识别网页中的表格内容这种特性来实现的.当Web服务程序在响应客户端浏览请求时,先输出MIME类型,然后输出表格等HTML内容.比如(以C #代码为例):

Response.Clear();

Response.Buffer 等于 false;

Response.AddHeader("Content-Disposition","attachment;filename等于test.xls");

Response.ContentType 等于"application/ms-excel";

StringWriter sw等于 new StringWriter();

HtmlTextWriter htw 等于 new HtmlTextWriter(sw);

GridView1.RenderControl(htw);

Response.Write(sw.ToString());

Response.End();

其中GridView1为Web服务端的GridView控件的ID.利用此方法的前提是需要重载VerifyRenderingInServerForm函数,取消其函数内容.

通过这种方法,可以将Web页面中的表格内容以HTML代码的方式输出到客户端浏览器,并提示保存名为test.xls的Excel文件.用记事本打开该文件,会发现其内容是HTML标记的网页文件,并非真正的二进制Excel文件.

2.Excel文件导出的其他几种可行方法

想要导出真正的二进制Excel文件,一是可以利用Excel应用程序对象创建Excel文件,然后输出二进制流到客户端浏览器进行保存;二是可以利用第三方的Excel类库,比如MyXlS、Koogra和NPOI等,直接生成二进制的Excel文件,然后输出二进制流到客户端浏览器进行保存.

利用Excel程序对象创建Excel文件首先要添加Microsoft.Office.Interop.Excel引用,并在代码中添加引用using Microsoft.Office.Interop.Excel ,然后新建一个ApplicationClass 实例,通过Excel应用程序实例进行相关的Excel文件操作,将创建的临时Excel文件读到内存流中,然后以二进制方式输出,并在最后将此实例释放.

使用Excel应用程序对象创建Excel文件,需要在服务器端安装Office,而且还需要设定权限允许.NET访问COM+,并且在服务器端会看到Excel程序窗口一闪而过,当然可以让程序窗口不显示,但是任务管理器里还是会有Excel程序的进程,如果多个用户同时请求导出Excel文件,会产生多个Excel程序的进程,消耗过多的服务器资源,可能导致服务器宕机.另外Excel程序会把只包含数字的列进行类型转换,原本是文本型的,Excel程序会将其转成数值型,比如000123会变成123.如果内容以“等于”开头,Excel程序还会把它当成公式执行,然后报错等,不便于原始格式Excel的生成.

使用第三方Excel类库的优势就是不需要在服务器上安装微软的Office,避免版权问题,而且使用起来比Office PIA的API更加方便,更人性化,但几种Excel类库各有千秋.比如MyXlS 是一个免费开源的类库,侧重于Excel的输出.可以设置到单个单元格,但读取功能很弱.Koogra与MyXlS恰恰相反,是一个非常好用Excel读取类库,其最新版可以支持Excel 2007格式,可是在测试过程中发现Koogra读不了MyXlS输出的XLS文件.而NPOI不仅支持导出Excel,还支持导入Excel,并能“理解”OLE2文档结构.对于Excel文件来讲,NPOI不单是能创建Excel文件,而且能更深入地执行Excel文件的各种操作,比如支持单元格的格式设置、合并单元格、对齐设置、使用边框、字体设置、背景和纹理设置、宽度和高度设置等,还能使用Excel公式、创建图形、设置打印机属性、锁定列、设置等多项操作.


3.利用NPOI导出Excel文件的实现

基于上述分析,我们使用NPOI类库实现Excel文件的导出.该类库是POI的.NET版本.POI是一套用Ja写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97、Office 2003版本的文件.最新的NPOI有.Net 2.0、3.5和4.0三个版本,支持Excel、Word的97、2003和2007格式.

利用NPOI实现Excel文件导出的步骤:

3.1 添加NPOI的引用

先在项目工程里引用NPOI.DLL,然后在代码开始处添加引用:

using NPOI.SS.Util;

using NPOI.SS.UserModel; using NPOI.HS.UserModel;

3.2 创建工作簿

HSWorkbook hsworkbook 等于 new HSWorkbook();

Sheet sheet1等于 hsworkbook.CreateSheet(title);//创建标题为title内容的工作簿

3.3 设置单元格样式

等等

Row row1 等于 sheet1.CreateRow(0);//创建行对象

Cell cell1 等于 row1.CreateCell(0);//根据行对象创建单元格对象

CellStyle style 等于 hsworkbook.CreateCellStyle();//创建样式对象

Font font 等于 hsworkbook.CreateFont();//创建字体对象

style.Alignment 等于 HorizontalAlignment.CENTER;//设置水平居中

style.VerticalAlignment 等于 VerticalAlignment.CENTER;//设置垂直居中

font.FontHeight 等于 18 * 20;//设置字体

style.SetFont(font);//设置样式的字体

cell1.CellStyle 等于 style;//设置单元格的样式

等等

3.4 合并相关单元格

等等

CellRangeAddress region 等于 new CellRangeAddress(0, 0, 0, 11);//设置合并区域为0行0列到0行11列

sheet1.AddMergedRegion(region);//为工作簿sheet1添加合并区域

等等

3.5 单元格赋值

等等

string title 等于 "2013年度教学任务分配表";

cell1.SetCellValue(title);//为单元格赋值

等等

3.6 导出Excel文件

等等

MemoryStream s 等于 new MemoryStream();

hsworkbook.Write(s);

hsworkbook.Dispose();

Response.Clear();

Response.Buffer 等于 false;

Response.ClearContent();

Response.ClearHeaders();

Response.AddHeader("Content-Disposition","attachment;filename等于" +Server.UrlEncode("教学任务分配表.xls"));

Response.BinaryWrite(s.ToArray());

s.Dispose();

Response.End();

相关论文

如何CAD中导出PDF文件

这是一篇关于文件毕业论文开题报告范文,与如何CAD中导出PDF文件相关毕业论文参考文献格式。是硕士论文专业与文件及格式文件及纸张方面相关。

如何CAD中导出PDF文件

本论文是一篇关于文件类职称论文检索,关于如何CAD中导出PDF文件相关学年毕业论文范文。免费优秀的关于文件及格式文件及纸张方面论文范文资。

用Excel中提取出生日期和性别

本论文为关于信息技术方面论文引用格式,关于用Excel中提取出生日期和性别相关学士学位论文,可用于信息技术论文写作研究的大学硕士与本科毕。

EXCEL设置连续打印快递单

此文是一篇快递论文范文,快递有关论文范文,与EXCEL设置连续打印快递单相关毕业论文格式范文。适合不知如何写快递及打印机及属性方面的论文。

Excel在工资核算中的应用

本文是一篇工资论文范文,工资相关毕业论文格式,关于Excel在工资核算中的应用相关在职毕业论文范文。适合工资及部门及社会保险方面的的大学。

在Web项目服务端访问Office文件

本论文是一篇文件方面学术论文模板,关于在Web项目服务端访问Office文件相关毕业论文的格式范文。免费优秀的关于文件及方法及进程方面论文范。

镇江市教育局文件

本文是一篇信息技术论文范文,关于信息技术类函授毕业论文,关于镇江市教育局文件相关电大毕业论文范文。适合信息技术及中小学教师及幼儿园方。

Excel在实际工作中的应用

关于资料管理及数据及参考文献方面的免费优秀学术论文范文,资料管理相关论文的格式,关于Excel在实际工作中的应用相关论文范文集,对写作资。