2020-8-9 导出的思路
导出的思路:
实列: 导出AR数据
导出分为两种:
- 在已有的模板上导出数据 ====》 前提:必须要提前构建好模板在已有的模板上导出数据:表头已经存在有
- 直接导出数据
第一步:引用 NPOI 插件到项目中
第二步:筛选导出数据(表格数据查询)
-
- 把需要导出的数据,进行筛选,数据存在于数据库,所以需要在控制器写一个查询方法,把需要导出的数据,通过联表的关系,进行联表查询 ===》Linq 查询语句
-
-
注意:需要操作的就是 Excel 的表格 第三步:获取工作簿、工作表
- (1)先判断文件是否存在,如果存在,通过 NPOI 的参数先获取工作簿,后再获取工作表,如果不存在就返回失败信息。
-
注意:需要操作的就是 Excel 的表格 第三步:获取工作簿、工作表
-
-
- 先使用NPOI打开模板Excel,再获取工作簿
-
工作簿:一个 Excel 的表格就代表着一个工作簿
2、获取工作表:通过索引的方式来获取:索引开始值为 0;获取工作簿/工作表的数据成功后,进行导出,导出需要构建表头
第四步:构建表头(表头:人为构建)
-
- 导出数据:一部分是表头,
一部分是数据 ==➔ 表头根据数据进行匹配
-
-
导出数据:构建表头完成之后,设置 Excel 单元格的样式:
-
导出数据:构建表头完成之后,设置 Excel 单元格的样式:
然后往模板中填充数据,设置数据单元格的样式,水平垂直设置对齐,最后通过 for 循环,获取导出的数据的总量(Count),通过行和列方式,进行遍历环。
第五步:保存导出的 Excel 文件。(使用 IO 流)
第三、第四步、第五步 固定的写法!!!!
(2)直接导出实列:导出 LK 数据
导出思路:第一步:引用 NPOI 插件到项目中(如果项目已经引用,就不需要再次进行引用)第二步:筛选导出数据(表格数据查询)
-
- 把需要导出的数据,进行筛选,数据存在于数据库,所以需要在控制器写一个查询方法,把需要导出的数据,通过联表的关系,进行联表查询 ===》Linq 查询语句
- 注意:需要操作的就是 Excel 的表格
- 获取工作簿/工作表的数据成功后,直接进行导出,导出需要构建表头 第三步:获取工作簿、工作表
(1)直接进行导出,调用 NPOI,先创建一个好工作簿:,再实列化一个工作表
第四步:构建表头(表头:人为构建)
-
-
- 第一步:先创建一个单元格的样式(调用 NPOI 里面的方法),然后设置它的样式:
-
-
-
- 第二步:先创建第一行,行里面构建列,然后通过 for 循环给每个单元格设置样式
-
导出数据:(不固定)
(1)利用 for 循环自动生成表的数据,然后设置列的宽为自动适应
第五步:保存导出的 Excel 文件。(使用 IO 流) 通过.xsl,输出文件的名称,最后使用 IO 流的方法保存导出的 Excel 文件