前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NPOI导出数据

NPOI导出数据

作者头像
PHY_68
发布2020-09-16 14:30:20
1.2K0
发布2020-09-16 14:30:20
举报
文章被收录于专栏:laopan技术分享laopan技术分享

NPOI导出数据

代码语言:javascript
复制
开发工具与关键技术:MVC

 

作者:盘洪源

 

撰写时间:2019年4月14日星期天

将一个表的数据导出到Excel表中和将Excel表中的数据导入到数据库中,需要怎么做?

首先先说一下这个导出,导出相对于导入来说简单些,导入比较多判断,导出分几步理解就很容易明白了。

步骤:

第一步先把你所需要导出的数据的这张表先查询出来,根据实际情况来查询数据,这个就不多说。

第二步就是将刚刚查询出来的数据转化为对象列表的格式,你直接查询出来的数据是不可能直接就可以导出的,先转化为一个列表先。

第三步就是创建一个工作簿Excel

HSSFWorkbook excelBook = new HSSFWorkbook();

第四步在工作簿里创建工作表并命名

NPOI.SS.UserModel.ISheet sheet1 = excelBook.CreateSheet(“考生信息”);

第五编写工作表的内容:

首先创建第一行,这第一行就相当于表头的意思,

NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);

然后你查询的数据的字段有多少就创建多少列并赋值

在这里插入图片描述
在这里插入图片描述

CreateCell单元格SetCellValue表头单元格里的内容

这个0,1,2,3就相当于索引值的意思,从左到右。

然后就到创建数据行,这要用到一个for循坏,因为每次导出的数据总数可能不一样。

NPOI.SS.UserModel.IRow rowTemp = sheet1.CreateRow(i + 1);

这里需要注意的是创建的是数据行,第一行已经是标题行了,所以需要i+1

为每一列给上对应表头的字段

在这里插入图片描述
在这里插入图片描述

第六编写文件名

var fileName = “考生信息” + DateTime.Now.ToString(“yyyy-MM-dd-HH-ss-ffff”) + “.xls”;

DateTime.Now.就是当前日期时间,".xls"文件后缀。

第七将Excel表格转为流输出(创建文件流,将文件写入流):

创建文件流

MemoryStream bookStream = new MemoryStream();

将文件写入流(向流中写入字节序列)

excelBook.Write(bookStream);

代码语言:javascript
复制
输出之前调用Seek(偏移量,游标位置) 把0位置指定为开始位置

bookStream.Seek(0, SeekOrigin.Begin).

在视图那边写出这个导出所需要的判断条件后回调函数有所不同。

我们要实现的一个效果就是在标签页打开下载excel的url,下载excel文件

window.open(’/ExaminationManagement/SetExaminee/ExportToExcel?’+strTemp.substring(1, strTemp.length));

这样一个简单的导出数据就可以实现出来。就分这几个步骤来做,容易理解。

简单点说就两句话:

创建工作簿Excel,在工作簿里创建工作表,编写工作表里的内容(表头【第一行】,数据【数据行】)

修改文件名,将Excel表格转为流输出(创建文件流,将文件写入流)。

基本思路就是这样。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档