您的位置:首页 > 其它

POI:数据批量导出、按模板导出

2015-12-21 08:35 459 查看
Action或者Servlet中

Workbook wb=new HSSFWorkbook();

String headers[]={"编号","姓名","电话","Email","QQ"};

ResultSet rs=userDao.userList(con, null);

ExcelUtil.fillExcelData(rs, wb, headers);

ResponseUtil.export(ServletActionContext.getResponse(), wb, "导出excel.xls");

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());

}

}

}

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);//这是利用Response,可以利用Action的下载功能,就需要转换输出流到输入流

out.flush();

out.close();

}

利用模板导出

Workbook wb=ExcelUtil.fillExcelDataWithTemplate(userDao.userList(con, null), "userExporTemplate.xls");

ResponseUtil.export(ServletActionContext.getResponse(), wb, "利用模版导出excel.xls");

public static Workbook fillExcelDataWithTemplate(ResultSet rs,String templateFileName)throws Exception{

InputStream inp=ExcelUtil.class.getResourceAsStream("/com/java1234/template/"+templateFileName);

POIFSFileSystem fs=new POIFSFileSystem(inp);

Workbook wb=new HSSFWorkbook(fs);

Sheet sheet=wb.getSheetAt(0);

// 获取列数

int cellNums=sheet.getRow(0).getLastCellNum();

int rowIndex=1;

while(rs.next()){

Row row=sheet.createRow(rowIndex++);

for(int i=0;i<cellNums;i++){

row.createCell(i).setCellValue(rs.getObject(i+1).toString());

}

}

return wb;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: