NPOI导出数据

NPOI导出数据

开发工具与关键技术: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);

输出之前调用Seek(偏移量,游标位置) 把0位置指定为开始位置

bookStream.Seek(0, SeekOrigin.Begin).

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

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

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

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

简单点说就两句话:

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

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

基本思路就是这样。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linq分组数据累加

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    PHY_68
  • Supermap GIS地图知识点

    PHY_68
  • MVC中的新增、修改、删除

    新增、删除、修改、查询这都是MVC中最基础的,所以说想要学好MVC必须先把基础打好,查询是比较复杂点,这里我简单介绍一下新增、删除、修改

    PHY_68
  • Windows下pip 离线包安装

    pip在线安装十分方便,有时候某些服务器并没有直接联网,需要下载好安装包上传到服务器上进行安装,不经常用,还是有点小麻烦的。

    py3study
  • 消息中间件RabbitMQ系列,直连模式,实现利用代码从队列里面取出数据(四)

    之前已经利用代码,将一些数据放到了队列里面,现在我们要实现利用代码从队列里面拿出数据。

    一天不写程序难受
  • Yann LeCun:谁能解释极限学习机(ELM)牛在哪里?

    用户1737318
  • 同程艺龙合并:在品牌域名上从未小气过!

    2017年12月29日下午,艺龙旅行网与同程旅游集团旗下的同程网宣布合并,成立新公司“同程艺龙”。在整合交通、酒店等资源的同时,打造全新的旅行服务平...

    躲在树上的域小名
  • 推荐一个维基百科的中文镜像网站

    此时我们可以使用源于维基百科的万维百科,国内可以正常使用: https://www.wanweibaike.com/

    Jerry Wang
  • 米虫余杰浩收购“皇后”域名huanghou.com

    2017年9月,知名域名投资人余杰浩在朋友圈爆料到自己收购了“皇后”域名huanghou.com,并表示其适合的平台类型,但并未透露收购价格。

    躲在树上的域小名
  • 曾经豪言“指哪爬哪”,如今被一个JS狠狠教做人

    很久没有写有关爬虫相关的内容了,今天给大家分享一下最近工作中遇到的一个与JavaScript相关的数据采集案例。

    州的先生

扫码关注云+社区

领取腾讯云代金券