zoukankan      html  css  js  c++  java
  • java poi导出EXCEL xls文件代码

    String _currentPage = request.getParameter("currentPage");
            Integer currentPage = 0;
            if(_currentPage == null){
                currentPage = 1;
            }else{
                currentPage = Integer.valueOf(_currentPage);
            }
            log.info("导出excel页码: " + currentPage);
            
            /**map为空时查询全部的配件信息*/
            Map map = new HashMap();
            map.put("flag",10);
            map.put("unionFlag",0); //0表示单件商品,而非组合商品。
            Integer totalSize = partsMgrService.totalPartsInfo(map);
            /**封装pageUtil对象*/
            PageUtil pageUtil = new PageUtil(totalSize,Integer.valueOf(currentPage));  //读取第一页,与partsmgr.jsp查询保持一致。
            map.put("pageUtil",pageUtil);
            //map.put("flag",10);
            list = partsMgrService.listPartsInfo(map);
            
            
            try {
                HSSFWorkbook wb = partsMgrService.export(list);  //调用service方法~!
                response.setContentType("application/vnd.ms-excel");  
                response.setHeader("Content-disposition", "attachment;filename=partsList.xls");  
                OutputStream ouputStream = response.getOutputStream();  
                wb.write(ouputStream);  
                ouputStream.flush();  
                ouputStream.close(); 
                
            } catch (Exception e) {    
                e.printStackTrace();
                log.error("配件导出excel错误:", e);
            }  
    @Override
        public HSSFWorkbook export(List<PartsInfoDTO> list) throws Exception{
            String[] excelHeader = {"ID", "编码", "名称","库存","成本价","市场价","销售价","重量","上架","所属品牌","所属分类","所属供应商","图片"};  
            
            HSSFWorkbook wb = new HSSFWorkbook();  
            HSSFSheet sheet = wb.createSheet("养车之家后台配件列表");   
    //        sheet.setDefaultRowHeight((short)300);
    //        sheet.setDefaultColumnWidth((short)3000);
            sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值  参考 :"2012-08-10"的宽度为2500
            
    //        sheet.setColumnWidth(0, 1000);
            /**没有效果 ~!!! 140123 huangjing
             * 是设置了sheet.autoSizeColumn(i);  的原因
             *  */
            sheet.setColumnWidth(1, 3766);
            sheet.setColumnWidth(2, 3766);
            sheet.setColumnWidth(3, 3766);
            sheet.setColumnWidth(4, 3766);
            sheet.setColumnWidth(5, 3766);
            sheet.setColumnWidth(6, 3766);
            sheet.setColumnWidth(7, 3766);
            sheet.setColumnWidth(8, 3766);
            sheet.setColumnWidth(9, 3766);
            sheet.setColumnWidth(10, 3766);
            sheet.setColumnWidth(11, 3766);
            sheet.setColumnWidth(12, 3766);        
            
            HSSFCellStyle style = wb.createCellStyle();  
            style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
            style.setWrapText(true); //设置是否能够换行,能够换行为true  
            
            HSSFRow row = sheet.createRow((int) 0); 
            for (int i = 0; i < excelHeader.length; i++) {  
                HSSFCell cell = row.createCell(i);  
                cell.setCellValue(excelHeader[i]);  
                cell.setCellStyle(style);  
    //            sheet.autoSizeColumn(i);  
            }  
      
            for (int i = 0; i < list.size(); i++) {  
                row = sheet.createRow(i + 1);  
                PartsInfoDTO dto = list.get(i);  
                HSSFCell cell = null;
                cell = row.createCell(0);
                cell.setCellValue(dto.getId());  
                cell.setCellStyle(style);
                
                cell = row.createCell(1);
                if(dto.getPartsCode() != null){
                    cell.setCellValue(dto.getPartsCode());
                }else{
                    cell.setCellValue("-");
                }
                cell.setCellStyle(style);
                
                cell = row.createCell(2);
                if(dto.getPartsName() != null){
                    cell.setCellValue(dto.getPartsName());  
                }else{
                    cell.setCellValue("-");  
                }
                cell.setCellStyle(style);
                
                cell = row.createCell(3);
                if(dto.getStoreNum() != null){
                    cell.setCellValue(dto.getStoreNum());
                }else{
                    cell.setCellValue("-");
                }
                cell.setCellStyle(style);
                
                cell = row.createCell(4);
                if(dto.getCostPrice() != null){
                    cell.setCellValue(dto.getCostPrice());
                }else{
                    cell.setCellValue("-");
                }
                cell.setCellStyle(style);
                
                cell = row.createCell(5);
                if(dto.getMarketPrice() != null){
                    cell.setCellValue(dto.getMarketPrice());
                }else{
                    cell.setCellValue("-");
                }
                cell.setCellStyle(style);
                
                cell = row.createCell(6);
                if(dto.getRetailPrice() != null){
                    cell.setCellValue(dto.getRetailPrice());
                }else{
                    cell.setCellValue("-");
                }
                cell.setCellStyle(style);
                
                cell = row.createCell(7);
                if(dto.getWeight() != null){
                    cell.setCellValue(dto.getWeight());
                }else{
                    cell.setCellValue("-");
                }
                cell.setCellStyle(style);
                
                cell = row.createCell(8);
                if(dto.getUpdown() == 0){
                    cell.setCellValue("否");
                }else{
                    cell.setCellValue("是");
                }
                cell.setCellStyle(style);
                
                
                cell = row.createCell(9);
                if(dto.getPartsBrandDto().getBrandName() != null){
                    cell.setCellValue(dto.getPartsBrandDto().getBrandName());
                }else{
                    cell.setCellValue("-");
                }
                cell.setCellStyle(style);
                
                String typeName = "";
                if(dto.getPartsType2Dto().getTypeName() != null){
                    typeName = dto.getPartsType2Dto().getTypeName();
                }else{
                    typeName = "-";
                }
                if(dto.getPartsTypeDto().getTypeName() != null){
                    typeName += "-" + dto.getPartsTypeDto().getTypeName();
                }else{
                    typeName += "-";
                }
                cell = row.createCell(10);
                cell.setCellValue(typeName);
                cell.setCellStyle(style);
                
                
                cell = row.createCell(11);
                if(dto.getSupplyInfoDto().getSupplyName() != null){
                    cell.setCellValue(dto.getSupplyInfoDto().getSupplyName());
                }else{
                    cell.setCellValue("-");
                }
                cell.setCellStyle(style);
                
                
                cell = row.createCell(12);
                if(dto.getPic().equals("none.jpg")){
                    cell.setCellValue("无");
                }else{
                    cell.setCellValue("有");
                }
                cell.setCellStyle(style);
                
            }  
            return wb;  
    
        }

    实现从数据库中查询数据按当前分页来导出~!!!
    导出效果图:

  • 相关阅读:
    Learning Spark中文版--第三章--RDD编程(1)
    关于learning Spark中文版翻译
    dom4j 常用操作
    Invalid bound statement (not found)
    touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
    docker 运行tomcat 并部署 java web项目
    docker build no such file or directory
    Docker 笔记
    java 自动拆箱 自动装箱
    Ubuntu18 中文乱码 问题 解决
  • 原文地址:https://www.cnblogs.com/simpledev/p/3532774.html
Copyright © 2011-2022 走看看