Ecxel导出

工具类

package com.ai.common;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;

public class ExcelUtil {

    /**
     * 导出Excel
     * @param sheetName sheet名称
     * @param title 标题
     * @param values 内容
     * @param wb HSSFWorkbook对象
     * @return
     */
    public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){

        // 第一步,创建一个HSSFWorkbook,对应一个Excel文件
        if(wb == null){
            wb = new HSSFWorkbook();
        }

        // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet(sheetName);

        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
        HSSFRow row = sheet.createRow(0);

        // 第四步,创建单元格,并设置值表头 设置表头居中
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

        //声明列对象
        HSSFCell cell = null;

        //创建标题
        for(int i=0;i<title.length;i++){
            cell = row.createCell(i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(style);
        }

        //创建内容
        for(int i=0;i<values.length;i++){
            row = sheet.createRow(i + 1);
            for(int j=0;j<values[i].length;j++){
                //将内容按顺序赋给对应的列对象
                row.createCell(j).setCellValue(values[i][j]);
            }
        }
        return wb;
    }
    
    
    
    //有颜色
    public static HSSFWorkbook getHSSFWorkbookColor(String sheetName,String []title,String [][]values, HSSFWorkbook wb){

        // 第一步,创建一个HSSFWorkbook,对应一个Excel文件
        if(wb == null){
            wb = new HSSFWorkbook();
        }

        // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet(sheetName);

        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
        HSSFRow row = sheet.createRow(0);

        // 第四步,创建单元格,并设置值表头 设置表头居中
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

        sheet.setColumnWidth(0, 5000);
        sheet.setColumnWidth(1, 15000);
        sheet.setColumnWidth(2, 5000);
        sheet.setColumnWidth(3, 10000);
        sheet.setColumnWidth(4, 10000);
        
        //声明列对象
        HSSFCell cell = null;

        //创建标题
        for(int i=0;i<title.length;i++){
            cell = row.createCell(i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(style);
        }

        //创建内容
        for(int i=0;i<values.length;i++){
            row = sheet.createRow(i + 1);
            for(int j=0;j<values[i].length;j++){
                //将内容按顺序赋给对应的列对象
                row.createCell(j).setCellValue(values[i][j]);
                
                //6.设置样式
                CellStyle cellStyle = wb.createCellStyle();
                cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //填充单元格
                
                
                
                if("删除".equals(String.valueOf(values[i][2]))) {
                	 cellStyle.setFillForegroundColor(HSSFColor.RED.index); //填红色
     		        row.getCell(j).setCellStyle(cellStyle);
                }else if("保留".equals(String.valueOf(values[i][2]))) {
               	 cellStyle.setFillForegroundColor(IndexedColors.BRIGHT_GREEN.getIndex()); //绿色
    		        row.getCell(j).setCellStyle(cellStyle);
               }else if("新增".equals(String.valueOf(values[i][2]))) {
                 	 cellStyle.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex()); //填蓝色
     		        row.getCell(j).setCellStyle(cellStyle);
                }else if("观察".equals(String.valueOf(values[i][2]))) {
                  	 cellStyle.setFillForegroundColor(IndexedColors.SKY_BLUE.getIndex()); //填红色
     		        row.getCell(j).setCellStyle(cellStyle);
                }else if("室分保留".equals(String.valueOf(values[i][2]))) {
                 	 cellStyle.setFillForegroundColor(IndexedColors.BRIGHT_GREEN.getIndex()); //填红色
    		        row.getCell(j).setCellStyle(cellStyle);
               }
               
            }
        }
        return wb;
    }
}

调用

//导出
		@RequestMapping(value = "/exportRelExcl.do", method = RequestMethod.GET)
		@ResponseBody
		 public void exportRelExcl(HttpServletRequest request,HttpServletResponse response) throws Exception {
			Map paramMap = PJCommon.getRequestParamMapAndSessionInfo(request);
			List<Map> list=new ArrayList();
		  		list= gridService.getMonitorLinkItemList(paramMap);
		             //excel标题
		  		//ADIVICE: 0
//		  		CAMPUS_ID: "HF-XY-001"
//		  			CENT_X: "117.20961"
//		  			CENT_Y: "31.89851"
//		  			INVALIDATE_TIMES: 0
//		  			NETFLAG: 1
//		  			OBJECTID: 37672
//		  			SECTOR_NAME_CH:
		  		
		  		 String[] title = {"校园ID","校园名称","建议状态","扇区中心经度","扇区中心纬度"};
		           //excel文件名
		           String fileName = "扇区关联表"+System.currentTimeMillis()+".xls";

		           //sheet名
		          String sheetName = "扇区关联表";
		  		String content[][]=new String[list.size()][5] ;

		          for (int i = 0; i < list.size(); i++) {
		  			Map obj =  list.get(i);
		  			String type="";
		  			if("0".equals(String.valueOf(obj.get("ADIVICE")))) {
		  				type="删除";
		  			}else if("1".equals(String.valueOf(obj.get("ADIVICE")))) {
		  				type="保留";
		  			}else if("2".equals(String.valueOf(obj.get("ADIVICE")))) {
		  				type="新增";
		  			}else if("3".equals(String.valueOf(obj.get("ADIVICE")))) {
		  				type="观察";
		  			}else if("4".equals(String.valueOf(obj.get("ADIVICE")))) {
		  				type="室分保留";
		  			}
		  			
		  			content[i][0] = tostring(String.valueOf(obj.get("CAMPUS_ID")));
		  			content[i][1] = tostring(String.valueOf(obj.get("SECTOR_NAME_CH")));
		  			content[i][2] = type;
		  			content[i][3] = tostring(String.valueOf(obj.get("CENT_X")));
		  			content[i][4] = tostring(String.valueOf(obj.get("CENT_Y")));
		  			
		  }

		  //创建HSSFWorkbook 
		          HSSFWorkbook wb = ExcelUtil.getHSSFWorkbookColor(sheetName, title, content, null);

		          //响应到客户端
		          try {
		          	this.setResponseHeader(response, fileName);
		          	OutputStream os = response.getOutputStream();
		          	wb.write(os);
		          	os.flush();
		          	os.close();
		          } catch (Exception e){
		          	e.printStackTrace();
		          }
			
	 		
		}

前端

function exportRelExcl(click_ID,type){
	
	var sql='?type='+type
	+'&cityCode='+cityCode
	+"&ID="+click_ID
	+"&serial="+ serial;
	window.location.href="./../../cityGrid/exportRelExcl.do"+sql;
}
发布了52 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/liz9411/article/details/91491869