zoukankan      html  css  js  c++  java
  • java操作Excel之POI(5)利用POI实现使用模板批量导出数据

    后台导出方法:

    在源文件夹src下面放个准备好的模板:/com/cy/template/userExportTemplate.xls,这个模板有头部一行;

     1 /**
     2 *    后台导出方法
     3 *    利用POI实现使用模板批量导出数据
     4 */
     5 public String export2() throws Exception{
     6     Connection con = null;
     7     try{
     8         con = dbUtil.getCon();
     9         ResultSet rs = userDao.userList(con, null);
    10         Workbook wb = ExcelUtil.fillExcelDataWithTemplate(rs, "userExportTemplate.xls");
    11 
    12         //把wb以流的形式输出
    13         ResponseUtil.export(ServletActionContext.getResponse(), wb, "利用模板导出Excel.xls");
    14     }catch(Exception e){
    15         e.printStackTrace();
    16     }finally{
    17         try{
    18             dbUtil.closeCon(con);
    19             dbUtil.closeRs(rs);
    20         }catch(Exception e){
    21             e.printStackTrace();
    22         }
    23     }
    24 
    25     return null;
    26 }

    处理Excel的Util:

    先读取这个模板,创建一个工作簿Workbook,然后塞数据,再返回这个工作簿,相当于对模板做了修改。

     1 /**
     2 *    处理Excel的util
     3 */
     4 public class ExcelUtil{
     5 
     6     public static Workbook fillExcelDataWithTemplate(ResultSet rs, String templateFileName) throws Exception{
     7         InputStream is = ExcelUtil.class.getResourceAsStream("/com/cy/template/"+templateFileName);
     8         POIFSFileSystem pfs = new POIFSFileSystem(is);
     9         Workbook wb = new HSSFWorkbook(pfs);
    10         Sheet sheet = wb.getSheetAt(0);                 //获取模板的第一个sheet页
    11         int cellNums = sheet.getRow(0).getLastCellNum(); //获取列数
    12         int rowIndex = 1;                                //从第二行开始
    13         Row row = null;
    14         while(rs.next()){
    15             row = sheet.createRow(rowIndex++);
    16             for(int i=0; i<cellNums; i++){
    17                 row.createCell(i).setCellValue(rs.getObject(i).toString());
    18             }
    19         }
    20 
    21         return wb;
    22     }
    23 }

    导出的Excel:

  • 相关阅读:
    Android简易抽屉效果
    apk 下载并自动安装
    python2.7_1.3_获取远程设备的IP地址
    python2.7_1.2_打印设备名和IPv4地址
    python2.7_1.14_编写一个简单的回显客户端/服务器应用
    python2.7_1.13_编写一个SNTP客户端
    C语言程序转换为Python语言
    5分钟弄懂Docker!
    让正则表达式变简单(PythonVerbalExpressions)
    python sqlalchemy-migrate 使用方法
  • 原文地址:https://www.cnblogs.com/tenWood/p/6426906.html
Copyright © 2011-2022 走看看