菜的像徐坤
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

MVC Exel导出

4735人阅读 2021/4/21 18:30 总访问:866248 评论:0 收藏:0 手机
分类: .net

前言

命名空间:

using NPOI.HSSF.UserModel;

using System.IO;

创建空的Exel

            //内存中构建一个Exel
            HSSFWorkbook workbook = new HSSFWorkbook();
            //构建一个空的Exel表
            HSSFSheet sheet = workbook.CreateSheet("学生信息表") as HSSFSheet;

添加数据(行和列)

             //添加行(第一行)
             HSSFRow row = sheet.CreateRow(0) as HSSFRow;
            
             //添加列(填充数据)(第一列)
             HSSFCell num = row.CreateCell(0) as HSSFCell;
             num.SetCellValue("编码");

添加样式

            //行高(仅仅更改row这行的行高)
            row.Height = 600;
            //列宽(仅仅更改row这行的行高)(第一列,列宽4000)
              sheet.SetColumnWidth(0, 4000);
             //合并单元格(第几行到第几行,第几列到第几列)
              sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 2, 0, 0));
                        
             //创建列样式
             HSSFCellStyle style = workbook.CreateCellStyle() as HSSFCellStyle;
             //水平居中
             style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
             //垂直居中
              style.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;
              //设置边框
              style.BorderRight = NPOI.SS.UserModel.CellBorderType.THIN;
              style.BorderTop = NPOI.SS.UserModel.CellBorderType.THIN;
              style.BorderLeft = NPOI.SS.UserModel.CellBorderType.THIN;
              style.BorderBottom = NPOI.SS.UserModel.CellBorderType.THIN;
                        
                        
              //创建字体加粗样式
              HSSFFont font = workbook.CreateFont() as HSSFFont;
              font.Boldweight = 800;
              style.SetFont(font);
                        
             //装载样式(仅仅只代表row这一行可多加)
              row.CellStyle = style;

导出

            //将数据表转化成二进制
            MemoryStream memoryStream = new MemoryStream();
            //将Exel数据转化成二进制数据
            workbook.Write(memoryStream);
            //声明传到前台的不是字符串,而是一个文件(固定语法,文件名可更改)
            Response.AddHeader("Content-Disposition", "attachment; filename=学生信息表.xls");
            //把文件传输到前台
            Response.BinaryWrite(memoryStream.ToArray());


评价