码迷,mamicode.com
首页 > Web开发 > 详细

Npoi导出Excel 实战篇(Webform)

时间:2016-08-09 22:06:29      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:

废话不多说,直接上遇到的问题

需求:在这个界面点击导出,导出页面数据,苦于没有做过webfrom项目,弄了半天还是没想到原生态的好方法,所以在网上看了下有没有导出的好例子,结果发现有人推荐使用Npoi,抱着强烈的好奇心,就去查了下这个东东,发现果然强大,哈哈,里面集成了很多东西,下面直接进入解决问题正题:

技术分享

实现过程(仅供参考)

①发现项目里面接口方法返回DataTable是带参数的,所以新增了一个无参数的方法

技术分享

②实现这个方法,重点是将查询到的结果集放大DataTable中

技术分享

③先去官网:http://npoi.codeplex.com/ 下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用。[因为我的项目就用到了excel导出,所以只添加了这两个dll]

技术分享       技术分享

④执行点击事件即可[本项目是点击导出Excel时,执行button3的点击事件]

技术分享

 

 ⑤添加方法(本方法可通用,其中rs是申明的一个全局DataTable ,将接口调用的查询数据库的方法直接返回给rs)

技术分享
 1   NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
 2              NPOI.SS.UserModel.ISheet sheet = book.CreateSheet("Sheet1");
 3             //设置列的信息
 4 
 5              NPOI.SS.UserModel.IRow headerrow = sheet.CreateRow(0);
 6              ICellStyle style = book.CreateCellStyle();
 7              style.Alignment = HorizontalAlignment.Center;
 8              style.VerticalAlignment = VerticalAlignment.Center;
 9             rs =CMSModelManager.SendInfoManageDAO.GetFirstSendInfoManageByIds();
10             IRow rowHead = sheet.CreateRow(0);
11             //填写表头
12             for (int i = 0; i < rs.Columns.Count; i++)
13             {
14                 rowHead.CreateCell(i, CellType.String).SetCellValue(rs.Columns[i].ColumnName.ToString());
15             }
16 
17              //填写内容
18              for (int i = 0; i < rs.Rows.Count; i++)
19              {
20                  IRow row = sheet.CreateRow(i + 1);
21                  for (int j = 0; j < rs.Columns.Count; j++)
22                  {
23                      row.CreateCell(j, CellType.String).SetCellValue(rs.Rows[i][j].ToString());
24                  }
25              }
26              MemoryStream ms = new MemoryStream();
27              book.Write(ms);
28              Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", HttpUtility.UrlEncode("寄件信息表" + "_" + DateTime.Now.ToString("yyyy-MM-dd"), System.Text.Encoding.UTF8)));
29              Response.BinaryWrite(ms.ToArray());
30              Response.End();
31              book = null;
32              ms.Close();
33              ms.Dispose();
View Code

⑥效果

技术分享 

   本文完

 

Npoi导出Excel 实战篇(Webform)

标签:

原文地址:http://www.cnblogs.com/zhangxiaoyong/p/5754547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!