public classtestaction{/**
* 导出excel
* @param t10_page_in_parm
* @param request
* @param response*/@RequestMapping(value="downloadT10_report.do",method=RequestMethod.POST)public voidexport(HttpServletRequest request,HttpServletResponse response){//获取excel信息
List list = null;//TODO
Map beans = new HashMap();
beans.put("list", list);
beans.put("count", list.size());try{
Workbook wb=ExcelExportUtils.getWorkbook(excelTemplatePath, beans);
String uplodapath= "D:/temp";
String downLoadFileName= "testexcel.xlsx";//下载图片到excel
downloadImgToExcel(wb, uplodapath, downLoadFileName, response);
}catch(Exception e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}/**
* 下载图片到excel
* @param wb
* @param uplodapath
* @param downLoadFileName
* @param response*/
private voiddownloadImgToExcel(XSSFWorkbook wb,String uplodapath,String downLoadFileName,HttpServletResponse response){//下载图片到excel//begin
BufferedImage bufferImg = null;try{//创建作图sheet
XSSFSheet sheet1 = null;if(wb.getSheet("echarts")==null){
sheet1= wb.createSheet("echarts");
}else{
sheet1= wb.getSheet("echarts");
}//循环读取图片插入到excel
String filedir = uplodapath + "\\" +"reporttpl\\"+LoginManager.getUserName();
File file= newFile(filedir);if(file.isDirectory()){
String[] files=file.list();//画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
XSSFDrawing patriarch =sheet1.createDrawingPatriarch();int i = 0;int rowbegin = 1;int rowend = 18;for(String _file : files){if("png".equals(_file.substring(_file.lastIndexOf(".")+1))){
ByteArrayOutputStream byteArrayOut= newByteArrayOutputStream();
bufferImg= ImageIO.read(new File(filedir + "\\" +_file));
ImageIO.write(bufferImg,"png", byteArrayOut);//anchor主要用于设置图片的属性
XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 255, 255,(short) 1, rowbegin, (short) 11, rowend);//插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_PNG));
i++;
rowbegin= i*18+1;
rowend= rowbegin + 18;
}
}
}
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(downLoadFileName, "GBK"));
OutputStreamout =response.getOutputStream();//写入excel文件
wb.write(out);out.close();
wb.close();
}catch(IOException e) {//TODO Auto-generated catch block
e.printStackTrace();
}//end
}
}