MVC导入与导出

导入的思路:
① 下载模板文件
② 获取上传的文件
③ 把上传的文件转化成二级制数组
④ 把二级制数据转化成内存流
⑤ 利用NPOI把内存流中的数据读取成Excel
⑥ 将内存流转化为工作簿,接着获取第一个工作表,先把Excel保存到临时表格里面 然后获取工作表里面的行和列
⑦ Excel表头作为临时表格的列,创建临时表格中的列,循环添加标题行中各个单元格的值, Excel数据作为临时表格的数据,Excel的行和列给到临时表,然后再通过双循环遍历临时 表的行和列移除空行
⑧ 验证数据导入的数据是否与数据库的数据重复
⑨ 将临时表的数据转化成数据库的表的数据
定义一个方法下载模板文件
在这里插入图片描述

然后再定义一个方法上传文件,获取上传的文件,把上传的文件转化成二进制数组,把二级制数据转化成内存流,利用NPOI把内存流中的数据读取成Excel
在这里插入图片描述

判断是否存在工作表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

验证导入的数据是否重复和数据的准确性
在这里插入图片描述

循环遍历临时表的数据添加到单元格里面
在这里插入图片描述

最后
在这里插入图片描述

2.导出部分
导出一般分两种导出
1.有模板的导出有模板导出的步骤:
① 用Linq查询出的数据再筛选出要导出的数据
② 根据模板文件的Excel导出,检查模板文件是否存在
③ 使用NPOI打开模板Excel,使用NPOI打开模板Excel 得到一个工作簿,打开模板所在第一个工作表,构建单元格样式
④ 设置标题,如果筛选时间段不为空就拼接上筛选时间段
⑤ 往模板中填充数据,设置数据单元格的样式(水平垂直居中对齐,设置边框为实线),开始填充数据
⑥ 以流的方式返回,把Excel转化为流,输出,定义内存流,将工作薄写入内存流,输出之前调用Seek(偏移量,游标位置)方法:获取文件流的长度,浏览器中显示的文件下载对话框内要使用的文件名

根据模板文件的Excel导出,检查模板文件是否存在
在这里插入图片描述

使用NPOI打开模板Excel,使用NPOI打开模板Excel 得到一个工作簿,打开模板所在第一个工作表,构建单元格样式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值