文献种类:专题技术总结文献;
开发工具与关键技术: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(偏移量,游标位置) 方法:获取文件流的长度
如下图: