菜鸟的学习日记总结(十一)将页面的数据到导出到Excel表格

在有些时候可能会需要将页面的数据导入到一些表格,目前暂时只学了将页面数据导入到Excel表格的方法。因为将页面的数据导出到Excel表格需要将导出数据页面的数据给查出来,所以在设置页面的函数时需要在函数里加上导出表格的多条件查询的筛选条件和判断。在拼接的请求路径需要拼接上多条件查询的参数。
在这里插入图片描述
在页面设置好参数就可以在控制器开始写方法了,在控制器写方法时需要在公共请求中接受页面传递过来的参数。因为需要使用多条件查询的方法查询出需要导出到Excel表格的数据,所以需要加上查询的方法。查询的方法是可以直接从初始化表格数据的查询方法中直接复制,只要复制数据查询和条件筛选的部分即可,也可以重新自己在写一遍。将查询的方法设置好就可以确定需要导出的数据是哪一部分了,可以开始写导出到Excel表格的方法了。想要将页面的数据导出到Excel首先需要创建一个工作簿。
在这里插入图片描述
因为设置数据导出到Excel表格需要调用到NPOI.HSSF.UserModel 这个文件里面的方法,所以在开头需要先引用这个文件才可以使用里面的方法。
在这里插入图片描述
在将工作簿创建好了之后就需要在创建一个工作表。
在这里插入图片描述
创建好工作表之后还需要创建表头行,并为表头行
在这里插入图片描述
当创建好工作簿、工作表和表头行就可以设置需要导出数据内容的表头了,设置的表头需要和导出的表格的表头设置成一致,需要导出数据的表格的表头有多少个就需要创建多少个表头,通过从零开始的索引开始设置。
在这里插入图片描述
需要注意的是如果需要导出数据的表格的表头通过表格设置的,数据库中是不存在的是不用创建的,如表格的序号等。在设置完表头就可以通过for循环为其添加数据了。
在这里插入图片描述
在for循环中需要创建行来写入数据,但是因为表格的第一行已经设置成了表头行,所以为了防止数据被覆盖在循环内创建的用于存放内容的行的索引是不能从零开始,它的索引值只能从一开始。在内容行创建好之后就可以为其写入数据了,添加数据的索引和表头的索引一致,添加内容的名称和查询出来要一致才可以将查询的数据写入表格。
在这里插入图片描述
For循环结束后,查询出来需要导出的数据已经全部写入到Excel表格了,开始设置创建的Excel表格的名称,命名时最好将创建表格的时间拼接在文件名后面,这样可以防止文件名重复从而导致有时候会将导出的文件给覆盖掉。拼接文件名时注意在要加上正确的后缀名。
在这里插入图片描述
然后开始转化内存流,并将Excel文件写入内存流中以便输出。
在这里插入图片描述
在输出内存流之前需要调用Seek(偏移量,游标位置),通过seek移动文件读取到鼠标的光标到指定的位置之后通过参照物移动位置,将鼠标的光标移动到内存流一开始的位置。这样做是为了在写入数据的时候鼠标的光标能够跟随写入的数据移动。 Seek(0,Seek.Begin) 第一个参数表示的是相对位置第二个参数表示的是参照的位置。
在这里插入图片描述
最后再将内存流、Excel表格的MIME文件类型、和Excel的名称返回就可以将需要的页面的数据导出到Excel表格并创建出来了。
在这里插入图片描述
application/vnd.ms-excel为Excel表格的MIME文件类型,在返回MIME文件时需要加上正确的MIME文件类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值