2020-08-09

文献种类:专题技术总结文献;
开发工具与关键技术:MVC与 C#
作者: 阮旭安 ;年级: 1903 ;撰写时间:2020 年 月 8 日

文件(Excel)导出总结

开发工具与关键技术:VS MVC(Microsoft Visual Studio) C# DW SQL
作者:阮旭安
撰写时间:2020年8月8日
                            一.导出 Excel

1.数据的导出 Excel
利用了浏览器的文件下载功能
下载的url连接在新的页面窗口打开 比如:window.open(); 在新标签中打开
查询出数据后导出
2.
①由于涉及到Excel的操作 而C#不支持直接操作的,所以导出需要用到第三方组件,而第三方组件有两种选择:1-msoffice excel (缺点:必须安装office 而且版本需要一致,否则调用失败)
2.NPOI (主要用于Excel的操作) xls:基本Excel版本,兼容性比较好 xlsx:新版本.
②引用NPOI,使用NPOI导出Excel

3.Excel的组成:
工作簿(HSSFWorkbook) > 工作表(ISheet) > 行(IRow) > 单元格(ICell)(先有行再有列)
①创建一个工作簿:
在这里插入图片描述

②创建工作表:
在这里插入图片描述

③创建行:
在这里插入图片描述

④创建单元格并且沟通设置值:
在这里插入图片描述

4.给单元格设置值用 SetCellValue(); 这是字符串类型 还有其它类型

5.合并单元格:sheet1.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0,0,0,6));

①AddMergedRegion 它有四个参数 用来合并单元格
AddMergedRegion(new NPOI.SS.Util.CellRangeAddress());
②CellRangeAddress 也有四个参数
CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol );
int firstRow:开始从那一行开始合并
int lastRow:合并到哪一行 (这两个就是开始到结束)
int firstCol/int lastCol:单元格从哪一行合到哪一行/单元格从哪一列合到哪一列
6.设置单元格样式:ICellStyle cellStyle_Title
在这里插入图片描述

7.创建表头的样式:
设置背景颜色:
设置边框为实线:
设置字体:
行高HeightInPoints的单位是点,而Height的单位是1/20个点,所以Height的值永远是HeightInPoints的20倍

8.使用for循环 设置列宽为自动适应

9.把创建好的Excel输出到浏览器
①把Excel转化为流输出(输出)
流:读取文件的方式
内存流 MemoryStream 创建其支持存储区为 !!! 直接把流放到内存中去
文件流 FileStream 需要读取文件
②定义流
将工作簿写入流
输出之前调用Seek(偏移量,游标位置)方法:获取文件流的长度
File:文件 (“application/vnd.ms-excel”:文件类型/fileName:文件名称)

                         二.使用模板的方式导出Excel

1.新创建一个存放模板的文件夹存放模板
2读取模板.获取模板的文件路径(绝对路径)
Server.MapPath:把相对路径转换成绝对路径
如下图:

3.使用NPOI打开模板Excel
①使用文件打开模板文件
FileStream:代表文件流
②打开流的模式
FileMode:文件的模式有六种1.Appenf:代表追加 写入的时候用到
2.Create:代表创建.如果文件不存在就创建,如果存在就覆盖(写入的时候用到)
3.CreateNew:直接创建一个新的
4.Open:文件存在就读取,如果不存在就异常 (读取)
5.OpenOrCeate:如果文件存在就打开,不存在就创建一个新的
6.Truncate:将文件截断为零字节大小
③把文件流转为工作簿

4.设置数据单元格的样式
①设置水平垂直居中 对齐 和边框为实线
如下图:

5.以流的方式返回
把Excel转化为流,输出,定义内存流,再将工作簿写入内存流.输出之前调用Seek(偏移量,游标位置) 方法:获取文件流的长度
如下图:

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值