Excel的导出导入

开发工具与关键技术:Visual Studio 2015 与 jQuery
作者:崔海刚
发布时间: 2020年8月9日

导出Excel数据
1、查询出需要导出的数据:
连表查询:查询参数
条件判断:判断是否筛选时间段
分页查询数据:要进行排序
利用了浏览器的 文件下载功能
在新页面打开下载的url(在新标签打开链接)
2、NPOI导出Excel:
引用NPOIExcel的导出导入

创建工作簿
Excel的导出导入

在工作簿中创建工作表:修改工作表名称
(1)在工作表里设置标题:
创建行(设置行高)
创建单元格
单元格设置值
合并单元格
设置单元格样式:
Excel的导出导入

(2)设置表头
创建一行 索引 1(给sheet添加第一行的头部标题 设置行高)
创建单元格 并设置值
创建表头的样式(声明样式、水平居中、垂直居中)
设置背景颜色
设置边框线为实线
设置字体(声明字体、加粗、字体大小、加入单元格)
给单元格设置样式 循环:
Excel的导出导入

(3)遍历查询到的数据,设置表格数据
创建数据内部部分 单元格样式
设置边框线为实线
遍历数据,创建数据部分行列
(4)设置列宽为自动适应:
Excel的导出导入

(5)把创建好的Excel输出到浏览器
把Excel转化为流输出:
Excel的导出导入

3、使用模板的方式导出Excel
获取模板的文件路径(判断文件是否存在)
使用NPOI打开模板Excel
使用文件打开模板文件
把文件流转为工作簿
打开模板所在第一个工作表
设置标题,如果筛选时间段不为空就拼接上筛选时间段:
Excel的导出导入

往模板中填充数据:
设置数据单元格的样式(水平居中对齐)
遍历查询出的数据 填充

把Excel转化为流输出:
Excel的导出导入

导入Excel数据
1、下载模板 .xls的文件
设置导入按钮(layui table toolbar模板 放在script标签中的作用 避免显示在页面)
设置工具栏的模块(toolbar)
设置工具条右侧的默认工具按钮([‘filter’, ‘print’, ‘exports’])
打开导入模态框
重置表单
显示模态框
2、用户根据模板填写数据
下载导入模板
创建一个导入模板
获取模板文件的路径,把相对路径改成绝对路径:
Excel的导出导入

判断模板是否存在
获取文件名称:
Excel的导出导入

以流的形式返回文件:
Excel的导出导入

3、用户上传数据-导入操作
文件上传 XMLHttpRequest
获取选择的文件
(1)使用XMLHttpRequest上传文件
创建FormData对象
将数据添加到FormData
创建XMLHttpRequest对象:
Excel的导出导入

打开指定的url 文件上传使用POST提交
设置回调方法:
Excel的导出导入

(2)获取上传的文件,判断文件后缀
把文件转换为二进制数组:
Excel的导出导入

判断是否存在工作表
(3)判断是否存在工作表
Excel的导出导入

将数据保存到DataTable中:
Excel的导出导入

创建DateTable中的列
通过遍历行中的每一个单元格,获取标题行各个单元格的数据,把列添加到DateTable中
移除掉DataTable中的空行,将dataTable中的数据转换为List<S_User>
Excel的导出导入

遍历DateTable中的数据
进行数据保存
(4)去除datatable空行