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了     由於本人還是個菜鳥  所以只知道怎么用   后續的具體原理還在研究


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM