Excel导出

生成EXCEL文件要导入poi.jar包

 在poi.xml中配置依赖,可自动下载

     <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>  

导出EXCEL两种情况:

1,点击导出通过浏览器下载

2,点击导出直接生成文件在本地磁盘

生成Excel的过程是一样的,差别是输出方式,如下:

/* 
     * 通用的Excel文件创建方法 
     *  sheets:sheet的tab标签页说明: 15年度报表 
     * headers:表头:List存放表头  编号、姓名、备注 
     *   datas:数据行:list存放实体数据,map存放具体每一行数据,和headers对应。 
     *      rs:HttpServletResponse响应作用域,如果不为null,会直接将文件流输出到客户端,下载文件 
     */  
    public static void ExpExs(String sheets,List headers,List<Map> datas,HttpServletResponse rs){  
        try {   
            if(sheets== null || "".equals(sheets)){ sheets = "sheet"; }  
                
            HSSFWorkbook workbook = new HSSFWorkbook();   
            HSSFSheet sheet = workbook.createSheet(sheets); //+workbook.getNumberOfSheets()  
               
            HSSFRow row;  
            HSSFCell cell;  
                
            //产生表格标题行         
            row = sheet.createRow(0);  
            for (int i = 0; i < headers.size(); i++) {   
                HSSFRichTextString text = new HSSFRichTextString(headers.get(i).toString());    
                cell = row.createCell(i);  
                cell.setCellValue(text);   
            }    
                
            Map map;  
            //遍历集合数据,产生数据行    
            for (int i=0; i <datas.size(); i++) {   
                row=sheet.createRow((i+1));  
                row.setHeightInPoints(20);  
                map = datas.get(i);  
    
                for(int j=0;j<map.size();j++) {  
                     cell = row.createCell(j);  
    
                     cell.setCellType(HSSFCell.CELL_TYPE_STRING);  
                     if(map.get(j) != null) {  
                         cell.setCellValue(new HSSFRichTextString(map.get(j).toString()));   
                     }else{  
                         cell.setCellValue(new HSSFRichTextString(""));       
                    }  
                }  
            }     
                
            for (int i = 0; i < headers.size(); i++) {   
                sheet.autoSizeColumn((short)i);  
            }  
            //浏览器下载   
            rs.reset();  
            rs.setContentType("multipart/form-data"); //自动识别  
            rs.setHeader("Content-Disposition","attachment;filename=data.xls");  
            //文件流输出到rs里  
            workbook.write(rs.getOutputStream());  
            rs.getOutputStream().flush();  
            rs.getOutputStream().close();  
      
       //下载到本地

        FileOutputStream fout = new FileOutputStream("D:/exportRoomPvUv.xls");
        //文件流输出到rs里
        workbook.write(fout);
        fout.close();


}
catch (Exception e) { System.out.println("#Error ["+e.getMessage()+"] "); } System.out.println("["+sheets+"] 创建成功..."); System.out.println(""); }

 

posted @ 2017-06-12 10:25  豆腐全家  阅读(193)  评论(0编辑  收藏  举报