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了     由于本人还是个菜鸟  所以只知道怎么用   后续的具体原理还在研究

  • 相关阅读:
    Python Data Analysis Library¶
    matadon/mizuno
    MySQL 5.1参考手册
    Apache Derby: Quick Start
    JRuby大捷:ThoughtWorks宣布Mingle发布在即
    RailsWithH2InJNDIOnJetty
    Embedded Jetty and Spring: The Lightweight Antidote for Java EE Complexity
    window下安装解压缩版mysql/zip压缩文件包非install安装程序
    Chapter 9. Extending Workbench
    Mysql手动增加一列_Blog of Grow_百度空间
  • 原文地址:https://www.cnblogs.com/chunxiong/p/7687345.html
Copyright © 2011-2022 走看看