1、当我们在一个网站看到了需要的数据时,有时候会选择所需要的数据进行导出,那么导出的时候就需要用到导出的表格,下面就是一个案例,在需要导出的时候,我们需要根据页面的表格来进行操作。
2、在进行导出的时候,我们也需要进行数据的查询,然后再设置其可以条件查询,导出的时候必须得添加一个NPOI的引用,然后将查询出来的数据转化为对象列表的格式。
3、创建工作簿Excel,给表格实例化,引用NPOI。
4、为工作簿创建工作表并命名。
5、编写工作表,给表设置表头,创建标题行并设置字段。创建第一行,并创建9列赋值。再创建数据行。
6、给Excel表格文件命名,怎么命呢?我们根据时间来给Excel文件表格命名,因为时间具有唯一性,然后声明一个值来赋值,"考生信息"就是Excel文件名的名称,接着获取当前的时间来拼接字符串。
7、它返回的值是一个文件类型,"application/vnd.ms-excel"它的意思是返回一个Excel表格的类型,它返回的参数值有三个。
8、在输出的是文件时,因为它还是文件流,所有我们还需要借助IO流来帮助导出。文件流的方式也有两种方式,一种是通过read来读取,一种是通过write来读取。
- 导出之前调用Seek(偏移量,游标位置)把0位置指定为开始位置。
10、在导出的时候,我们专门设置了其单独的按钮,用Layui的button的导出栏来设置按钮的绑定工具条来绑定数据,导出时可以进行条件查询,然后导出的数据必须与查询出来的数据进行比较,必须相等才能获取当前导出的条件数据。这样一个导出的数据就完成了。
11、有导出就有导入,但是导入就比导出较麻烦。
- 在导出时,我们要判断数据的表格是不是Excel表格(.xls)类型。
<1>获取读取的文件
<2>把文件转换为二进制数组
<3>二进制数组转成内存流
<4>利用NPOI把内存流中的数据读取成工作簿Excel
- 工作簿中有工作表
- 工作表中有数据
- 数据的准确性
- 数据都有,然后读取数据
下面是借助模态框来制作的导入数据
12、就算是导入的表都选好后,我们也需要把表格临时存放在临时表格里,不能马上把表格存入数据库,因为它还要经过筛选才能进行到导入数据库。
13、导入也还需用到IO流的参数来传输值。HttpPostedFileBase是充当类的基类,这些类提供对客户端已上载的单独文件的访问。
14、获取文件的名称来读取文件类型。要注意的是:在导入是必须要有模板,在能进行对文件的导入,不然会显示文件的不存在。导入时要严格按照下面的模板进行。
15、因为文件的类型有很多种,如:xlsx、xls、Csv,但现在的NPOI只支持xls的格式,在HTML里还需设置accept的属性。它规定能够通过文件上传进行提交的文件类型。
16、判断类型是不是.xls格式,Word的Excel不可以跟页面直接对接,必须转化成二进制然后在转化为内存流才能读取。要注意byte的内存存放
17、接着把IO流转化为内存流的格式:
18、判断工作簿中有工作表,把内存流转化为工作簿(IWorkbook)
19、在IWorkbook工作簿中获取处ISheet工作表。注意获取的索引值。
20、判断数据的准确定,要注意一列一列的获取数据,然后再在页面上读取出数据的值。
21、最后,把数据保存到Session中就是成功了。