tnblog
首页
视频
资源
登录

npoi导出excel

4993人阅读 2021/4/21 11:21 总访问:740119 评论:0 收藏:0 手机
分类: 后端

show your code:

public ActionResult OutPutExcel()
{
    //在内存中构建一个excel
    HSSFWorkbook workbook = new HSSFWorkbook();

    //在创建一个excel的表
    HSSFSheet sheet = workbook.CreateSheet("学生信息表") as HSSFSheet;

    //创建行
    HSSFRow row = sheet.CreateRow(0) as HSSFRow;

    //创建列(填充数据)
    row.CreateCell(0).SetCellValue("用户名");

    HSSFCell cell = row.CreateCell(1) as HSSFCell;
    cell.SetCellValue("学号");
    row.CreateCell(2).SetCellValue("年龄");
    row.CreateCell(3).SetCellValue("班级");

    //合并单元格(合并第一行的第1列到第3列)
    sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 1, 3));
    //合并单元格(合并行,合并第一行的第2到4列)
    sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(2, 4, 0, 0));

    //创建一个样式类
    HSSFCellStyle cellstyle = workbook.CreateCellStyle() as HSSFCellStyle;
    //水平居中
    cellstyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
    //垂直居中
    cellstyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;

    cell.CellStyle = cellstyle;


    //把内存流做为文件下载中转
    MemoryStream memoryStream = new MemoryStream();
    workbook.Write(memoryStream);

    Response.AddHeader("Content-Disposition", "attachment; filename=学生信息表.xls");

    Response.BinaryWrite(memoryStream.ToArray());

    return View();
}

根据模板导出,还有添加样式等

        public ActionResult OutPutExcel()
        {
            //在内存中构建一个excel
            HSSFWorkbook workbook = new HSSFWorkbook();

            //在创建一个excel的表
            HSSFSheet sheet = workbook.CreateSheet("学生信息表") as HSSFSheet;


            //创建行
            HSSFRow headerrow = sheet.CreateRow(0) as HSSFRow;
            //设置行高
            headerrow.Height = 1200;


            for (int i = 0; i < 3; i++)
            {
                sheet.SetColumnWidth(i, 220 * 25);
            }

            HSSFCell headcell = headerrow.CreateCell(0) as HSSFCell;
            headcell.SetCellValue("重庆优质学生信息公示\nQQ:48672901");

            //头部样式
            HSSFCellStyle headCellStyle = workbook.CreateCellStyle() as HSSFCellStyle;
            headCellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;
            headCellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
            headCellStyle.WrapText = true;

            //设置字体样式
            HSSFFont font = workbook.CreateFont() as HSSFFont;
            font.Boldweight = 800;
            font.FontHeight = 350;
            font.Color = HSSFColor.RED.index;
            font.FontName = "微软雅黑";

            headCellStyle.SetFont(font);
            headcell.CellStyle = headCellStyle;

            //创建行
            HSSFRow row = sheet.CreateRow(1) as HSSFRow;

            //创建列(填充数据)
            row.CreateCell(0).SetCellValue("用户名");

            HSSFCell cell = row.CreateCell(1) as HSSFCell;
            cell.SetCellValue("学号");
            row.CreateCell(2).SetCellValue("年龄");
            row.CreateCell(3).SetCellValue("班级");

            //合并单元格(合并第一行的第1列到第3列)
            sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 3));
            //合并单元格(合并行,合并第一行的第2到4列)
            //sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(2, 4, 0, 0));

            //创建一个样式类
            HSSFCellStyle cellstyle = workbook.CreateCellStyle() as HSSFCellStyle;
            //水平居中
            cellstyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
            //垂直居中
            cellstyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER;

            cell.CellStyle = cellstyle;

            //把内存流做为文件下载中转
            MemoryStream memoryStream = new MemoryStream();
            workbook.Write(memoryStream);

            Response.AddHeader("Content-Disposition", "attachment; filename=学生信息表.xls");

            Response.BinaryWrite(memoryStream.ToArray());

            return View();
        }

        /// <summary>
        /// 根据模板导出
        /// </summary>
        public void OutPutExcelByTemp()
        {
            string url = Server.MapPath("~/excel/temp.xls");

            FileStream filestream = new FileStream(url, FileMode.Open);

            //根据文件流加载excel
            HSSFWorkbook workbook = new HSSFWorkbook(filestream);

            //获取表
            HSSFSheet sheet = workbook.GetSheet("2021年度财务报表") as HSSFSheet;


            for (int i = 3; i < 10; i++)
            {
                HSSFRow row = sheet.CreateRow(i) as HSSFRow;
                row.Height = 700;

                for (int j = 0; j < 8; j++)
                {
                    HSSFCell cell = row.CreateCell(j) as HSSFCell;

                    //创建一个样式类
                    HSSFCellStyle cellstyle = workbook.CreateCellStyle() as HSSFCellStyle;
                    //水平居中
                    cellstyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER;
                    //垂直居中
                    cellstyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER; 

                    cell.SetCellValue("富婆" + i * j);

                    cell.CellStyle = cellstyle;
                }
            }


            //把内存流做为文件下载中转
            MemoryStream memoryStream = new MemoryStream();
            workbook.Write(memoryStream);
            Response.AddHeader("Content-Disposition", "attachment; filename=重庆富婆通讯录.xls");
            Response.BinaryWrite(memoryStream.ToArray());
        }


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价
这一生多幸运赶上过你.
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术