导入导出

导入导出
导出:
原理:就是往 Excel 表格的单元格里塞数据一个一个的塞,因为 vs 里面本身跟
Excel 表格是没有直接相关联的,就是没办法直接导出数据,那么我们就需要调
用第三方的插件 NPOI 插件完成导出 Excel 表格的效果所以先引用 NPOI 插件。
我们导出数据是要导出在工作表里面,那么工作表里面有分为行列,单元格
导出分两种:
(1)在已有的模板上导出数据;(前提:必须要提前构建好模板)
(2)直接导出数据。(自己构建表头和数据)
第一步:在项目引用 NPOI 插件,在项目文件资源管理器打开文件夹,bin 目录
里面引用 NPOI 插件应用程序扩展,因为 bin 目录是我们运行目录。
第二步:筛选导出数据。我们要导出的数据存在数据库里面,所以在控制器里面
要写一个查询方法,把你要导出的数据通过连表 LINQ 查询的方式查询出来。在
新建一个导出的控制器,构建视图,然后嵌套在页面上。
第三步:获取工作簿,工作表(一个 Excel 就是一个工作簿,一个 Sheet 就是一
个工作表)
第四步:构建表头(这里表头需要人为构建)
        导出数据(表头和数据)表头需要根据数据匹配
第五步:保存导出的 Excel 文件。(使用 IO 流),调用浏览器的导出
导出的数据一定要跟预览的数据保持一致,所以导出也是一个函数并且这个函
数也是有条件的,条件就是根据日期去筛选数据。回到页面构建一个模板,构建
好模板就要放到目录下面,所以就要创建一个文件夹叫 Document 文件夹,在文
件夹里面放我们定义好的模板,就可以调用现有的模板。因为模板呢不可能直接
往单元格里面塞数据的,因为我们只有一个表头虽然里面有列但他的列并不接
收数据,所以必须通过 NPOI 去创建文件流的列,所以我们每进来一次都要调用
NPOI 去创建列,创建列调用的就是工作表里面的 CreatRow(),确定单元格无非
就是确定他的行和列,那么行和列是我们人为的知道,模板有多少列就是多少列
数据,而行就通过行索引来确定。既然我们的文件是一个流,那么就以一个流的
方式返回一个文件,返回这个文件就给这个文件命一个名称,一般建出来的文件
是没有名称的,所以我们给它命名,以日期给它做命名的方式,以流的方式得到
文件名后接下来把整格 Excel 表格转换成文件流,我们读写文件的方式都是以
文件流来读写的,调用的就是 IO 命名空间,输出之前一定要调用 seek(偏移量,
游标位置)来判断文件流的长度,目的就是判断文件是否输出完整。
//目的:就是要判断他是否输出完整            /参数:File(fileStream 要发送到响应的流,contentType 内容类型(MIME 类型),fileDownloadName 浏览器中显示的文件下载对话框内要使用的文件名。)/ 1- 检查模板文件是否存在
2- Server.MapPath 将相对的路径转为实际的物理路径
3- 使用 NPOI 打开模板 Excel
4- 使用文件打开模板文件
5- 使用 NPOI 打开模板 Excel 得到一个工作簿
6- 打开模板所在第一个工作表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值