Java后端 Excel导出表格

笔记:Java后端 Excel导出表格

   public ReturnMsg derivedForm(JSONObject record){
    		ReturnMsg msg=new ReturnMsg();
    		Map<Object,String> map=new HashMap<Object,String>();
    		String sw=BeforeTheSuffix.Prefix;
    		long node_id = record.getLong("nodeId");
    		Map nodeByNodeIdAndNodeName = pageDesignDao.getNodeByNodeId(node_id);
    		map.put("node_name",captureName(Pinyin4jUtil.toPinyin(nodeByNodeIdAndNodeName.get("node_name").toString())));
    		//获取字段
    		String str=record.getString("datafield");
    		//取出字段放入数组
    		String[] strs=str.split(",");
    		//声明数组变量 初始化位数为取出字段的位数
    		String[] datas= new String[strs.length];
    		//将取出的字段数组遍历出来 每个字段加前缀 然后在重新存进新的数组变量中
    		for(int i=0;i<strs.length;i++) {
    			datas[i]=sw+strs[i];
    		}
    		//将数组转换为字符串
    		String datafield=StringUtils.join(datas,",");
    		map.put("datafield", datafield);
    		//查出的数据放进集合
    		List<Map> listMap=pageDesignDao.derivedForm(map);
    		
    		//生成Excel
    	    File fileExcel =new File(HostConstants.FILE_PATH+"Excel"); 
    	   	//如果文件夹不存在则创建 
    	   	if (!fileExcel.exists() && !fileExcel.isDirectory()) {    
    	      fileExcel.mkdir(); 
    	  	}
    	    File file = new File(HostConstants.FILE_PATH+"Excel"+"/template1.xls");
    		
    	    FileOutputStream fileOutputStream=null;
    		try {
    			fileOutputStream = new FileOutputStream(file);
    		} catch (FileNotFoundException e1) {
    			e1.printStackTrace();
    		}
    		//HSSFWorkbook生成Excel   org.apache.poi
    	    HSSFWorkbook workbook = new HSSFWorkbook();
    	    HSSFSheet sheet = workbook.createSheet("Sheet1");
    	    HSSFCellStyle cellStyle = workbook.createCellStyle();    
    	    HSSFRow row = sheet.createRow(0);
    	    row.setHeightInPoints(30); // 设置行的高度
    	    
    	    //将字段遍历出来为字段起别名作为表格的标题
    	    for(int x=0;x<datas.length;x++) {
        		if(datas[x].equals("swprefixyonghu")) {
        			row.createCell(x).setCellValue("用户");
        		}
        		if(datas[x].equals("swprefixjingyan")) {
        			row.createCell(x).setCellValue("禁言");
        		}
        		if(datas[x].equals("swprefixshijianw")) {
        			row.createCell(x).setCellValue("时间");
        		}
    		}
    	    
    	    //将动态查询出的数据遍历出来重新放进map中
    	    for(int i = 0;i < listMap.size();i++)
    	    {
    	    	row = sheet.createRow(i + 1);
    	        Map<String,Object> maps = listMap.get(i);
    	        //遍历出字段将字段的记录数据放入表格中
    	        for(int j=0;j<datas.length;j++) {
    		        String authorStr = maps.get(datas[j]).toString();
    		        row.createCell(j).setCellValue(authorStr);
    			}
    	    }
    	    
    	    workbook.setActiveSheet(0);
    		try {
    			workbook.write(fileOutputStream);
    			fileOutputStream.close();
    			msg.setMsg(listMap);
    			msg.setStatus(Answer.SUCCESS_MSG);
    			msg.setStatusMsg("导出成功");
    		} catch (Exception e) {
    			msg.setStatus(Answer.ERR_MSG);
    			msg.setStatusMsg("导出失败");
    		}
    		return msg;
    			
    	}

猜你喜欢

转载自blog.csdn.net/tengchengbaba/article/details/85197211
今日推荐