博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Npoi导出Excel 实战篇(Webform)
阅读量:5276 次
发布时间:2019-06-14

本文共 2118 字,大约阅读时间需要 7 分钟。

开篇语

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

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

实现过程

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

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

③先去官网: 下载需要引入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

⑥效果

 

   本文完

 

转载于:https://www.cnblogs.com/zhangxiaoyong/p/5754547.html

你可能感兴趣的文章
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
php上传文件及头像预览
查看>>
大四java实习生的一些经历
查看>>
线程池的概念
查看>>
Oracle_Statspack性能诊断工具
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>
python接口自动化28-requests-html爬虫框架
查看>>
生成随机数的模板
查看>>