zoukankan      html  css  js  c++  java
  • 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(""); }
  • 相关阅读:
    我对管理信息系统定位的理解
    正斜杠和反斜杠-windows、web、c语言大讨论
    java异常处理的两种方法
    使用throws抛出异常
    课后作业
    每日自学
    《梦断代码》读后感
    每日自学
    每日自学
    每日自学
  • 原文地址:https://www.cnblogs.com/doufuquanjia/p/6962026.html
Copyright © 2011-2022 走看看