列表导出excel

/**
	 *  通用导出
	 * @data  2018年10月10日
	 * @author daibingjie 
	 * @param response
	 * @param fileName 文件名
	 * @param list 数据
	 * @param filePath 模板路径
	 * @param r 第几行录入
	 */
	public void getExport(HttpServletRequest request,HttpServletResponse response , 
			String fileName ,List<Map<String,Object>> list, String filePath ,Integer r) {
        OutputStream out = null;
        try {
            FileInputStream tps = new FileInputStream(new File(filePath));
            final HSSFWorkbook tpWorkbook = new HSSFWorkbook(tps);
            out = response.getOutputStream();
            response.reset();
            response.setHeader("content-disposition", "attachment;filename=" + fileName + ".xls");
            response.setContentType("APPLICATION/msexcel");
            // 新建一个Excel的工作空间
            HSSFWorkbook workbook = new HSSFWorkbook();
            // 把模板复制到新建的Excel
            workbook = tpWorkbook;
            HSSFSheet sheet = workbook.getSheetAt(0);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            if (list != null && list.size() > 0) {
            	for (int i = 0; i < list.size(); i++) {
                    Map<String,Object> map =  list.get(i);
                    HSSFRow row = sheet.createRow(i + r);  
                    for (int k = 0; k < map.size(); k++) {
                        Object value = map.get("key_"+k);
                        String realV = "";
                        if(value instanceof BigDecimal){
                        	realV = map.get("key_"+k).toString();
                        }
                        if(value instanceof Date){
                        	
                        	realV = sdf.format(value);
                        }
                        if(value instanceof String){
                        	realV = value.toString();
                        }
                        if(StringUtil.isEmpty(realV)){
                        	realV = " ";
                        }
                        
                        HSSFCell cell = row.createCell(k);
                        cell.setCellValue(realV);

                    }
                   
                }
            }
            // 输出Excel内容,生成Excel文件
            workbook.write(out);
        } catch ( IOException e) {
        	e.printStackTrace();
        } catch ( IllegalArgumentException e) {
        	e.printStackTrace();
        } catch ( Exception e) {
        	e.printStackTrace();
        } finally {
            try {
                // 最后记得关闭输出流
                response.flushBuffer();
                if (out != null) {
                    out.flush();
                    out.close();
                }
            } catch (final IOException e) {
            	e.printStackTrace();
            }
        }		
		
	}

猜你喜欢

转载自blog.csdn.net/weixin_38197447/article/details/88940891