后台导出方法:

 /**
* 后台导出方法
* 利用POI实现数据的批量导出
*/
public String export() throws Exception{
Connection con = null;
try{
con = dbUtil.getCon();
Workbook wb = new HSSFWorkbook();
String headers[] = {"编号", "姓名", "电话", "Email", "QQ"};
ResultSet rs = userDao.userList(con, null);
ExcelUtil.fillExcelData(rs, wb, headers); //把wb以流的形式输出
ResponseUtil.export(ServletActionContext.getResponse(), wb, "导出Excel.xls");
}catch(Exception e){
e.printStackTrace();
}finally{
try{
dbUtil.closeCon(con);
dbUtil.closeRs(rs);
}catch(Exception e){
e.printStackTrace();
}
} return null;
}

处理excel的Util:

 /**
* 处理Excel的util
*/
public class ExcelUtil{ public static void fillExcelData(ResultSet rs, Workbook wb, String[] headers) throws Exception{
int rowIndex = 0;
Sheet sheet = wb.createSheet();
Row row = sheet.createRow(rowIndex++);
for(int i=0; i<headers.length; i++){
row.createCell(i).setCellValue(headers[i]);
} //这里假设的是头的列数和数据的列数是一样的
while(rs.next()){
row = sheet.createRow(rowIndex++);
for(int i=0; i<headers.length; i++){
row.createCell(i).setCellValue(rs.getObject(i+1).toString());
}
}
}
}

ResponseUtil以流的形式导出Workbook:

 /**
* ResponseUtil相应util
*/
public class ResponseUtil{
public static void write(HttpServletResponse response, Object o) throws Exception{
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
pw.print(o.toString());
pw.flush();
pw.close();
} /**
*导出Excel
* fileName: 导出的文件名
*/
public static void export(HttpServletResponse response, Workbook wb, String fileName) throws Exception{
response.setHeader("Content-Disposition", "attachment;filename="
+new String(fileName.getBytes("utf-8"), "iso8859-1"));
response.setContentType("application/ynd.ms-excel;charset=UTF-8");
OutputStream out = response.getOutputStream();
wb.write(out);
out.flush();
out.close();
}
}

导出的Excel:

最新文章

  1. java基础 绘图技术.坦克大战 之java绘图坐标体系(一)
  2. TCPView for Windows
  3. 必须要会的技能(一) 如何实现设计时Binding
  4. 1.4---字符串空格变成20%(CC150)
  5. ubuntu修改源列表sourcelist的方法
  6. innodb的锁到底占用多少内存
  7. 灰色预测模型 c# 算法实现
  8. 交互式的Flash图表和仪表控件AnyChart
  9. 前端工程搭建NodeJs+gulp+bower
  10. C++空类以及没有成员变量的类的大小
  11. MBProgressHUD not showing
  12. webview加载网页加载不出来
  13. .NET面向对象特性之多态
  14. 用cas来实现php的单点登陆
  15. MySQL随记(二)
  16. XX-NET史上最详细完整教程
  17. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Problem A - B
  18. [JetBrains注册] 利用教育邮箱注册JetBrains产品(pycharm、idea等)的方法
  19. PHP 正则表达式--转(川山甲)
  20. 高精度N的阶乘-N!

热门文章

  1. bzoj1607
  2. Jena解析rdf、nt、ttl格式数据
  3. 配置javaBean
  4. Final阶段第1周/共1周 Scrum立会报告+燃尽图 03
  5. HDU 1565
  6. poll 从应用层到内核实现解析
  7. mac 搭建Vue开发环境
  8. paho.mqtt.embedded-c MQTTPacket pub0sub1.c hacking
  9. VC++ 6.0 C8051F340 USB PC侧通信 Demo
  10. PDF软件推荐——Sumatra PDF - imsoft.cnblogs