zoukankan      html  css  js  c++  java
  • Asp.Net MVC 关于npoi导出excel的方法

    导出的excel的是一个项目的基本功能    所以不多说  我们项目用的npoi     可以直接在vs的NuGet里面直接搜索下载 安装就可以用了   

     //创建一个excel
                HSSFWorkbook hwb = new HSSFWorkbook();
                //创建一个excel中的表格
                HSSFSheet sheet = (HSSFSheet)hwb.CreateSheet("sheet1");
                //创建一个公司的title
                HSSFRow headerrow = (HSSFRow)sheet.CreateRow(0);
                headerrow.Height = 650;
                HSSFCell headercell = (HSSFCell)headerrow.CreateCell(0);
                headercell.SetCellValue("xxx有限公司");
                //创建一个单元格样式
                HSSFCellStyle cs = (HSSFCellStyle)hwb.CreateCellStyle();
                //垂直居中
                cs.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
                //水平居中
                cs.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
                //设置\n自动换行
                cs.WrapText = true;
                //给单元格设置样式
                headercell.CellStyle = cs;
                HSSFFont hf = (HSSFFont)hwb.CreateFont();
                hf.Boldweight = 900;//设置字体加粗
                hf.FontHeight = 260;//字体的高度
                hf.Color = HSSFColor.Blue.Index;//设置字体颜色
                cs.SetFont(hf);
                //合并单元格       
                sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 46));
                //创建行下面的列
    

      这部分代码只是在创建excel   以及设置excel的样式  还没有进行导入  

     List<PowerRate> lit = new List<PowerRate>();
                lit = _powerrate.GetPowerRateAll();//数据源  导出的数据       
                HSSFRow row1 = (HSSFRow)sheet.CreateRow(1); //表示从第几行开始写入
              
    

      接下来就是创建表头  

    //创建表头 
    HSSFRow row1 = (HSSFRow)sheet.CreateRow(1); //创建行下面的列 row1.CreateCell(0).SetCellValue("xx"); row1.CreateCell(1).SetCellValue("xxx"); row1.CreateCell(2).SetCellValue("xxx"); row1.CreateCell(3).SetCellValue("xxx");

      接着写入内容

      for (int i = 0; i < lit.Count; i++)
                {
                    //创建行
                    HSSFRow row = (HSSFRow)sheet.CreateRow(i + 2); // i+2 表示从第二行开始写入数据   第一行是表头  
                    //创建行下面的列
                    row.CreateCell(0).SetCellValue(lit[i].City);
                    row.CreateCell(1).SetCellValue(lit[i].County);
                    row.CreateCell(2).SetCellValue(lit[i].StatiocCode);
                    row.CreateCell(3).SetCellValue(lit[i].StationName);
                    }
    

      接着就是写入流  然后在浏览器端生成一个excel

         MemoryStream ms = new MemoryStream();
                string filename = DateTime.Now.ToString("yyyyMMddHHmmss");
                hwb.Write(ms);
                ms.Seek(0, SeekOrigin.Begin);
    

       我用的asp.net  MVC   那么控制器的类型应该是 FileResult   返回的是return File(ms, "application/vnd.ms-excel", filename + ".xls");

    然后在浏览器就可以生成一个你需要的excel了     由于本人还是个菜鸟  所以只知道怎么用   后续的具体原理还在研究

  • 相关阅读:
    LeetCode(35):Palindrome Number 分类: leetCode 2015-07-10 09:26 161人阅读 评论(0) 收藏
    在pycharm进行单元测试(unittest python)
    Django 基本操作
    Django中数据库操作相关的错误
    Question&&Answer
    ubuntu下 SVN 服务器搭建及使用
    python 在不同层级目录import 模块的方法
    Ubuntu 16.04安装PyCharm
    修改mysql中数据库存储主路径
    查看mysql的数据库物理存放位置
  • 原文地址:https://www.cnblogs.com/chunxiong/p/7687345.html
Copyright © 2011-2022 走看看