关闭

java读取excel文件里面的标准代码,并自动生成枚举类的java代码

标签: javapoi
594人阅读 评论(0) 收藏 举报
分类:

一、需求

需要根据excel里面的标准代码生成如下格式的java代码,总共有53个类别

二、实现

若是用手动编写的话,不要说手会酸了,有可能眼还会瞎(眼睛和手指的噩梦。。。)。后来自己就试着用代码来生成代码了
package com.lbl.standarcode;

import java.util.HashMap;
import java.util.Map;

public class StandarCode {

	/**
	 * 停电检测类型
	 */
	public final static	Map<String,String> FRPWOFFMONITTYPE_MAP=new HashMap<>();
	static{
		FRPWOFFMONITTYPE_MAP.put("01", "RespCoreConstant2.MONITTYPE_LIFESJ");//生命线客户(省级)停电),
		FRPWOFFMONITTYPE_MAP.put("02", "RespCoreConstant2.MONITTYPE_HR1");//重要客户(特级)停电),
		FRPWOFFMONITTYPE_MAP.put("03", "RespCoreConstant2.MONITTYPE_HR2");//重要客户(二级)停电),
		FRPWOFFMONITTYPE_MAP.put("04", "RespCoreConstant2.MONITTYPE_IMPORTCONS");//重点客户停电),
		FRPWOFFMONITTYPE_MAP.put("05", "RespCoreConstant2.MONITTYPE_LIFECITY");//生命线客户(地市级)停电),
		FRPWOFFMONITTYPE_MAP.put("06", "RespCoreConstant2.MONITTYPE_BIGCOMMUNITY_2HOUR");//大型小区(超2小时)停电),
		FRPWOFFMONITTYPE_MAP.put("07", "RespCoreConstant2.MONITTYPE_MIDCOMMUNITY_6HOUR");//中型小区(超6小时)停电),
		FRPWOFFMONITTYPE_MAP.put("08", "RespCoreConstant2.MONITTYPE_BIGCOMMUNITY_30MIN");//大型小区(超30分钟)停电),
		FRPWOFFMONITTYPE_MAP.put("09", "RespCoreConstant2.MONITTYPE_MIDCOMMUNITY_30MIN");//中型小区(超30分钟)停电),
		FRPWOFFMONITTYPE_MAP.put("10", "RespCoreConstant2.MONITTYPE_TRAM200");//200户中压客户(超30分)停电),
		FRPWOFFMONITTYPE_MAP.put("11", "RespCoreConstant2.MONITTYPE_TRAM150");//150户中压客户(超30分)停电),
		FRPWOFFMONITTYPE_MAP.put("12", "RespCoreConstant2.MONITTYPE_TRAM100");//100户中压客户(超30分)停电),
		FRPWOFFMONITTYPE_MAP.put("13", "RespCoreConstant2.MONITTYPE_TRAM50");//50户中压客户(超30分)停电),
		FRPWOFFMONITTYPE_MAP.put("14", "RespCoreConstant2.MONITTYPE_LOWCONS5W");//5万户低压客户(超30分)停电),
		FRPWOFFMONITTYPE_MAP.put("15", "RespCoreConstant2.MONITTYPE_LOWCONS3W");//3万户低压客户(超30分)停电),
		FRPWOFFMONITTYPE_MAP.put("16", "RespCoreConstant2.MONITTYPE_LOWCONS1W");//1万户低压客户(超30分)停电),
		FRPWOFFMONITTYPE_MAP.put("17", "RespCoreConstant2.MONITTYPE_LOWCONS5K");//5000户低压客户(超30分)停电),
		FRPWOFFMONITTYPE_MAP.put("18", "RespCoreConstant2.MONITTYPE_WHOLE_ISLAND");//全岛屿故障停电),
		FRPWOFFMONITTYPE_MAP.put("19", "RespCoreConstant2.MONITTYPE_SCOPE");//较大范围停电(福州地区停电30%,厦门40%,其他地区50%)),
		FRPWOFFMONITTYPE_MAP.put("20", "RespCoreConstant2.MONITTYPE_LINE10");//10kV以上馈线跳闸(30分钟内停10条)),
		FRPWOFFMONITTYPE_MAP.put("21", "RespCoreConstant2.MONITTYPE_LINE5");//10kV以上馈线跳闸(30分钟内停5-9条)),
		FRPWOFFMONITTYPE_MAP.put("22", "RespCoreConstant2.MONITTYPE_TRANFAULT48");//公变故障停电超48小时),
		FRPWOFFMONITTYPE_MAP.put("23", "RespCoreConstant2.MONITTYPE_TRANFAULT24");//公变故障停电超24小时),
		FRPWOFFMONITTYPE_MAP.put("24", "RespCoreConstant2.MONITTYPE_TRANFAULT12");//公变故障停电超12小时),
		FRPWOFFMONITTYPE_MAP.put("25", "RespCoreConstant2.MONITTYPE_PLANOVERTIME8");//计划停电延迟超过8小时送电),
		FRPWOFFMONITTYPE_MAP.put("26", "RespCoreConstant2.MONITTYPE_TRANFAUL_ACROSS_THE_NIGHT");//公变故障停电跨夜中止抢修),
		FRPWOFFMONITTYPE_MAP.put("27", "RespCoreConstant2.MONITTYPE_2_AREAS");//发生两个地区及以上营业场所或服务现场的同类集体服务中断),
		FRPWOFFMONITTYPE_MAP.put("28", "RespCoreConstant2.MONITTYPE_1_AREAS_2_TIMES");//发生一个地区两起及以上营业场所或服务现场的同类集体服务中断),
		FRPWOFFMONITTYPE_MAP.put("29", "RespCoreConstant2.MONITTYPE_1_AREAS");//发生一个地区营业场所或服务现场的同类集体服务中断),
		FRPWOFFMONITTYPE_MAP.put("30", "RespCoreConstant2.MONITTYPE_CENTRAL_LEVEL");//中央、全国性主流媒体、大型商业媒体报道关于停电及供电服务的负面信息),
		FRPWOFFMONITTYPE_MAP.put("31", "RespCoreConstant2.MONITTYPE_PROVINCE_LEVEL");//省级主流媒体报道关于停电及供电服务的负面信息),
		FRPWOFFMONITTYPE_MAP.put("32", "RespCoreConstant2.MONITTYPE_CITY_LEVEL");//市级主流媒体报道关于停电及供电服务方面的负面信息),
		FRPWOFFMONITTYPE_MAP.put("33", "RespCoreConstant2.MONITTYPE_USER_COUNTRY");//用户向国家有关管理部门反映的供电服务投诉事件),
		FRPWOFFMONITTYPE_MAP.put("34", "RespCoreConstant2.MONITTYPE_USER_PROVINCE");//用户向省级政府部门反映的供电服务投诉事件),
		FRPWOFFMONITTYPE_MAP.put("35", "RespCoreConstant2.MONITTYPE_USER_CITY");//用户向市级政府部门反映的供电服务投诉事件),
		FRPWOFFMONITTYPE_MAP.put("36", "RespCoreConstant2.MONITTYPE_USER_PREFECTURE");//用户向县级政府部门反映的供电服务投诉事件),
		FRPWOFFMONITTYPE_MAP.put("37", "RespCoreConstant2.MONITTYPE_E_CHANNEL");//发生电子渠道中断超过30分钟的故障),
		FRPWOFFMONITTYPE_MAP.put("38", "RespCoreConstant2.MONITTYPE_STATE_GRID_MARKETING");//发生营销系统、全省营销业务应用系统中断超过30分钟的故障),
		FRPWOFFMONITTYPE_MAP.put("39", "RespCoreConstant2.MONITTYPE_CITY_MARKETING");//发生市(区、县)营销业务应用系统中断超过30分钟的故障),
		FRPWOFFMONITTYPE_MAP.put("40", "RespCoreConstant2.MONITTYPE_HR0");//重要客户(一级)停电),

	}
	/**
	 * 应急预案类型
	 */
	public final static	Map<String,String> EMERTYPE_MAP=new HashMap<>();
	static{
		EMERTYPE_MAP.put("06", "RespCoreConstant2.EMERTYPE_PROVINCIALLIFE_LINE");//“省级监测生命线工程”用户停电),
		EMERTYPE_MAP.put("07", "RespCoreConstant2.EMERTYPE_TWOLV_IMP_CITYLIFE");//二级重要用户停电),
		EMERTYPE_MAP.put("08", "RespCoreConstant2.EMERTYPE_LARGE_RESIDENTIAL_AREAS");//大型小区故障停电),
		EMERTYPE_MAP.put("09", "RespCoreConstant2.EMERTYPE_MIDDLE_RESIDENTIAL_AREAS");//中型小区故障停电),
		EMERTYPE_MAP.put("10", "RespCoreConstant2.EMERTYPE_TRAM200");//超过200户中压户的同一故障停电),
		EMERTYPE_MAP.put("11", "RespCoreConstant2.EMERTYPE_TRAM150");//超过150户中压户的同一故障停电),
		EMERTYPE_MAP.put("12", "RespCoreConstant2.EMERTYPE_TRAM100");//超过100户中压户的同一故障停电),
		EMERTYPE_MAP.put("13", "RespCoreConstant2.EMERTYPE_TRAM50");//超过50户中压户的同一故障停电),
		EMERTYPE_MAP.put("14", "RespCoreConstant2.EMERTYPE_LOWCONS5W");//同一地区超过5万户低压户的故障停电),
		EMERTYPE_MAP.put("15", "RespCoreConstant2.EMERTYPE_LOWCONS3W");//同一地区超过3万户低压户的故障停电),
		EMERTYPE_MAP.put("16", "RespCoreConstant2.EMERTYPE_LOWCONS1W");//同一市(区、县)超过1万户低压户的故障停电),
		EMERTYPE_MAP.put("17", "RespCoreConstant2.EMERTYPE_LOWCONS5K");//同一市(区、县)超过5000户低压户的故障停电),
		EMERTYPE_MAP.put("18", "RespCoreConstant2.EMERTYPE_1W_WHOLE_ISLAND");//超过1万户的全岛屿故障停电),
		EMERTYPE_MAP.put("19", "RespCoreConstant2.EMERTYPE_TRANFAULT48");//超过48小时的公变故障停电),
		EMERTYPE_MAP.put("20", "RespCoreConstant2.EMERTYPE_TRANFAULT24");//超过24小时的公变故障停电),
		EMERTYPE_MAP.put("21", "RespCoreConstant2.EMERTYPE_TRANFAULT12");//超过12小时的公变故障停电),
		EMERTYPE_MAP.put("22", "RespCoreConstant2.EMERTYPE_LINE10");//同一市(区、县)30分钟内10kV以上馈线跳闸10条及以上),
		EMERTYPE_MAP.put("23", "RespCoreConstant2.EMERTYPE_LINE5");//同一市(区、县)30分钟内10kV及以上馈线跳闸5条及以上10条以下),
		EMERTYPE_MAP.put("24", "RespCoreConstant2.EMERTYPE_PLANOVERTIME8");//延迟送电超过8小时的计划停电),
		EMERTYPE_MAP.put("25", "RespCoreConstant2.EMERTYPE_2_AREAS");//发生两个地区及以上营业场所或服务现场的同类集体服务中断事件),
		EMERTYPE_MAP.put("26", "RespCoreConstant2.EMERTYPE_1_AREAS_2TIME");//发生一个地区两起及以上营业场所或服务现场的同类集体服务中断事件),
		EMERTYPE_MAP.put("27", "RespCoreConstant2.EMERTYPE_1_AREAS");//发生一个地区营业场所或服务现场的同类集体服务中断事件),
		EMERTYPE_MAP.put("28", "RespCoreConstant2.EMERTYPE_CENTRAL_LEVEL");//中央、全国性主流媒体、大型商业媒体中关于故障停电及供电服务方面的负面信息),
		EMERTYPE_MAP.put("29", "RespCoreConstant2.EMERTYPE_PROVINCE_LEVEL");//省级主流媒体中关于故障停电及供电服务方面的负面信息),
		EMERTYPE_MAP.put("30", "RespCoreConstant2.EMERTYPE_CITY_LEVEL");//市级主流媒体中关于故障停电及供电服务方面的负面信息),
		EMERTYPE_MAP.put("31", "RespCoreConstant2.EMERTYPE_USER_COUNTRY");//用户向国家有关管理部门(国家能源局、国资委等)反映的供电服务投诉事件),
		EMERTYPE_MAP.put("32", "RespCoreConstant2.EMERTYPE_USER_PROVINCE");//用户向省级政府部门(省政府、省能源监管办、信访局、文明办等)反映的供电服务投诉事件),
		EMERTYPE_MAP.put("33", "RespCoreConstant2.EMERTYPE_USER_CITY");//用户向市级政府部门反映的供电服务投诉事件),
		EMERTYPE_MAP.put("34", "RespCoreConstant2.EMERTYPE_USER_PREFECTURE");//用户向县级政府部门反映的供电服务投诉事件),
		EMERTYPE_MAP.put("35", "RespCoreConstant2.EMERTYPE_E_CHANNEL");//发生电子渠道(掌上电力APP、电e宝、95598互动网站、电力微信等)中断超过30分钟的故障),
		EMERTYPE_MAP.put("36", "RespCoreConstant2.EMERTYPE_STATE_GRID_MARKETING");//发生国网营销业务支持系统、全省营销业务应用系统中断超过30分钟的故障),
		EMERTYPE_MAP.put("37", "RespCoreConstant2.EMERTYPE_CITY_MARKETING");//发生市(区、县)营销业务应用系统中断超过30分钟的故障),
		EMERTYPE_MAP.put("38", "RespCoreConstant2.EMERTYPE_FZ30_XM40_OTHERS50");//福州30%以上用户,厦门40%以上用户,其他地市50%以上用户的正常用电受到影响),
		EMERTYPE_MAP.put("39", "RespCoreConstant2.EMERTYPE_FZ20_XM30_OTHERS40");//福州城市20%以上用户,厦门30%以上用户,其他地市40%以上用户正常用电受到影响),
		EMERTYPE_MAP.put("40", "RespCoreConstant2.EMERTYPE_FZ10_XM20_OTHERS30");//福州10%以上用户,厦门20%以上用户,其他地市30%以上用户的正常用电受到影响),
		EMERTYPE_MAP.put("41", "RespCoreConstant2.EMERTYPE_FZ5_XM10_OTHERS20");//福州5%以上用户,厦门10%以上用户,其他地市20%以上用户的正常用电受到影响),
		EMERTYPE_MAP.put("42", "RespCoreConstant2.EMERTYPE_BY_CENTRAL_LEVEL");//被中央或全国性新闻媒体曝光并产生重大影响的电力服务事件),
		EMERTYPE_MAP.put("43", "RespCoreConstant2.EMERTYPE_BY_PROVINCE_LEVEL");//被省级新闻媒体曝光并产生重大影响的电力服务事件),
		EMERTYPE_MAP.put("44", "RespCoreConstant2.EMERTYPE_BY_PROVINCIAL_CAPITAL_LEVEL");//被省会城市、副省级城市媒体曝光并产生较大影响的电力服务事件),
		EMERTYPE_MAP.put("45", "RespCoreConstant2.EMERTYPE_BY_PREFECTURE_CITY_LEVEL");//被地市级新闻媒体曝光并产生一定影响的电力服务事件),
		EMERTYPE_MAP.put("46", "RespCoreConstant2.EMERTYPE_CLIENT_COUNTRY");//客户向国家政府有关部门反映的集体投诉电力服务事件),
		EMERTYPE_MAP.put("47", "RespCoreConstant2.EMERTYPE_CLIENT_PROVINCE");//客户向省级政府有关部门反映的集体投诉电力服务事件),
		EMERTYPE_MAP.put("48", "RespCoreConstant2.EMERTYPE_CLIENT_PREFECTURE_CITY_LEVEL");//客户向地市级政府有关部门反映的集体投诉电力服务事件),
		EMERTYPE_MAP.put("49", "RespCoreConstant2.EMERTYPE_CLIENT_PREFECTURE");//客户向县级政府有关部门反映的集体投诉电力服务事件),
		EMERTYPE_MAP.put("50", "RespCoreConstant2.EMERTYPE_SUPERLV_IMP");//特级重要电力用户用户停电),
		EMERTYPE_MAP.put("51", "RespCoreConstant2.EMERTYPE_ONELV_IMP");//一级重要电力用户停电),
		EMERTYPE_MAP.put("52", "RespCoreConstant2.EMERTYPE_PROTECT_IMP");//重点保障用户停电),
		EMERTYPE_MAP.put("53", "RespCoreConstant2.EMERTYPE_CITYLLIFE_LINE");//“地市级监测生命线工程”用户停电),

	}
	
	/**
	 * 应急预案状态
	 */
	public final static	Map<String,String> EMERSTATUS_MAP=new HashMap<>();
	static{
		EMERSTATUS_MAP.put("01", "RespCodeConstant.P_CODE_EMER_STATUS_RELEASE");//应急预案-应急预案发布
		EMERSTATUS_MAP.put("02", "RespCodeConstant.P_CODE_EMER_STATUS_HANDLE");//应急预案-应急预案处置
		EMERSTATUS_MAP.put("03", "RespCodeConstant.P_CODE_EMER_STATUS_FOLLOW");//应急预案跟踪
		EMERSTATUS_MAP.put("04", "RespCodeConstant.P_CODE_EMER_STATUS_FINISH");//应急预案-应急预案结束
		EMERSTATUS_MAP.put("08", "RespCodeConstant.P_CODE_EMER_STATUS_OVER");//结束
	}
	
	/**
	 * 非标准的应急预案状态
	 */
	public final static	Map<String,String> EMERS_TEMP_TATUS_MAP=new HashMap<>();
	static{
		EMERS_TEMP_TATUS_MAP.put("01", "01");//应急预案-应急预案发布
		EMERS_TEMP_TATUS_MAP.put("02", "02");//应急预案-应急预案处置
		EMERS_TEMP_TATUS_MAP.put("03", "04");//应急预案结束
	
	}
	
}

package com.lbl.excel.read;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;

import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

import com.lbl.standarcode.StandarCode;
  
/** 
 * @author Lin 
 *  
 */  
public class ReadExcel {  
  
    /** 
     * @param args 
     * @throws Exception 
     */  
    public static void main(String[] args) throws Exception {
    	long start=System.currentTimeMillis();
    	write("E:\\standarcode\\info.txt", readExcel("E:\\standarcode\\标准代码生成模型(161220).xlsx").toString());   	
    	System.out.println(System.currentTimeMillis()-start);
    }  
    
    /**
     * 写入文件
     * @param filePath
     * @param row
     */
    public static void write(String filePath,String info){
    	FileWriter fileWrite=null;
        try {
			 fileWrite = new FileWriter(filePath);
			 fileWrite.write(info);  
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
	        try {
	        	if(fileWrite!=null){
	        		fileWrite.flush();
					fileWrite.close();
	        	}			
			} catch (IOException e) {
				e.printStackTrace();
			}  	         
		}  
    }
    
    public static StringBuilder readExcel(String filePath){   	     	     	  
        FileInputStream fileIn=null;
        Workbook wb=null;	
        StringBuilder result=new StringBuilder(100000);
			try {
				fileIn = new FileInputStream(filePath);
				wb = WorkbookFactory.create(fileIn);
				
		        int numOfSheets = wb.getNumberOfSheets();  
		        Sheet sheet = null;  
		        Row row = null;  
		        Cell cell = null;  		      		       
		        StringBuilder rowInfo=null;
		        // 循环遍历  
		        for (int indexOfSheet = 0; indexOfSheet < numOfSheets; indexOfSheet++) {  
		            sheet = wb.getSheetAt(indexOfSheet);  
		            int count=1;
		            //int count=79;
		            String cellValue = "";
		            String value=null,name=null,content2=null;		  
		            for (int indexOfRowNum = sheet.getFirstRowNum() + 1, rowNum = sheet  
		                    .getLastRowNum(); indexOfRowNum <= rowNum; indexOfRowNum++) {  
		               // System.out.println("行" + indexOfRowNum);  
		                row = sheet.getRow(indexOfRowNum);  
		                if (row != null) {  
		                	
		                    if (!row.getCell(1).getStringCellValue().equalsIgnoreCase("frEmerType")) {  
		                        break;  
		                    } else { 
		                    	cellValue=row.getCell(3).getStringCellValue();
		                    	/*
		                    	if(cellValue.startsWith("06")||cellValue.startsWith("07")||cellValue.startsWith("08")||cellValue.startsWith("09")||cellValue.startsWith("50")||cellValue.startsWith("51")||cellValue.startsWith("52")||cellValue.startsWith("53")){
		                    		continue;
		                    	}
		                    	*/
		                    	if(cellValue.length()==2){		                    					                 			                    	
			                    	cell = row.getCell(4);
			                    	name = getCellValue(cell); 			                    	
		                    		result.append("\r\n");//切换预警类型的时候换行,用来区分范围
		                    		result.append("/**").append(cellValue).append(name).append("**/").append("\r\n");
		                    	}
		                    	if(cellValue.length()!=8){
	                        		continue;
	                        	}
		                    	rowInfo=new StringBuilder(1000).append("map").append(count++).append("(");
		                    	
		                    	cell = row.getCell(3);
		                    	value = getCellValue(cell); 
		                    	
		                    	cell = row.getCell(4);
		                    	name = getCellValue(cell); 
		                    	
		                    	cell = row.getCell(7);
		                    	content2 = getCellValue(cell); 
		                    	//map(检测类型,应急预案类型【前两位】,应急预案状态,是否用户供电电源全停等,截取6位长度的值,预警/处置)
		                    	//拼接"监测类型的代码"
		                    	if(name.contains("省级监测生命线工程")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("01"));		         
		                    	}else if(name.contains("二级重要用户")||name.contains("二级重要电力用户供电电源")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("03"));		              
		                    	}else if(name.contains("大型小区")){
		                    		if(name.contains("超过2小时")){
		                    			rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("06"));	
		                    		}else if(name.contains("超过30分钟")){
		                    			rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("08"));	
		                    		}else{
		                    			//还有个两种情况的都要处理
			                    		//TODO
		                    			count++;//留出空位
		                    			rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("06"));	
		                    			rowInfo.append("||");
		                    			rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("08"));	
		                    		}
		                    		
		                    	}else if(name.contains("中型小区")){
		                    		if(name.contains("超过6小时")){
		                    			rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("07"));	
		                    		}else if(name.contains("超过30分钟")){
		                    			rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("09"));	
		                    		}else{
		                    			//还有个两种情况的都要处理
			                    		//TODO
		                    			count++;//留出空位
		                    			rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("07"));	
		                    			rowInfo.append("||");
		                    			rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("09"));	
		                    			
		                    		}
		                    		
		                    	}else if(name.contains("超过200户中压户")&&name.contains("超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("10"));	
		                    	}else if(name.contains("超过150户中压户")&&name.contains("超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("11"));	
		                    	}else if(name.contains("超过100户中压户")&&name.contains("超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("12"));	
		                    	}else if(name.contains("超过50户中压户")&&name.contains("超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("13"));	
		                    	}else if(name.contains("同一地区超过5万户低压户的故障停电")&&name.contains("超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("14"));	
		                    	}else if(name.contains("同一地区超过3万户低压户")&&name.contains("超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("15"));
		                    	}else if(name.contains("同一市(区、县)超过1万户低压户")&&name.contains("超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("16"));
		                    	}else if(name.contains("同一市(区、县)超过5000户低压户")&&name.contains("超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("17"));
		                    	}else if(name.contains("超过1万户的全岛屿故障停电,且停电时间超过30分钟")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("18"));
		                    	}else if(name.contains("超过48小时的公变故障停电")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("22"));
		                    	}else if(name.contains("超过24小时的公变故障停电")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("23"));
		                    	}else if(name.contains("超过12小时的公变故障停电")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("24"));
		                    	}else if(name.contains("同一市(区、县)30分钟内10kV以上馈线跳闸10条及以上")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("20"));
		                    	}else if(name.contains("同一市(区、县)30分钟内10kV及以上馈线跳闸5条及以上10条以下")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("21"));
		                    	}else if(name.contains("延迟送电超过8小时的计划停电")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("25"));
		                    	}else if(name.contains("发生两个地区及以上营业场所或服务现场的同类集体服务中断事件")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("27"));
		                    	}else if(name.contains("发生一个地区两起及以上营业场所或服务现场的同类集体服务中断事件")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("28"));
		                    	}else if(name.contains("发生一个地区营业场所或服务现场的同类集体服务中断事件")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("29"));
		                    	}else if(name.contains("中央、全国性主流媒体、大型商业媒体中关于故障停电及供电服务方面的负面信息")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("30"));
		                    	}else if(name.contains("省级主流媒体中关于故障停电及供电服务方面的负面信息")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("31"));
		                    	}else if(name.contains("市级主流媒体中关于故障停电及供电服务方面的负面信息")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("32"));
		                    	}else if(name.contains("用户向国家有关管理部门(国家能源局、国资委等)反映的供电服务投诉事件")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("33"));
		                    	}else if(name.contains("用户向省级政府部门(省政府、省能源监管办、信访局、文明办等)反映的供电服务投诉事件")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("34"));
		                    	}else if(name.contains("用户向市级政府部门反映的供电服务投诉事件")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("35"));
		                    	}else if(name.contains("用户向县级政府部门反映的供电服务投诉事件")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("36"));
		                    	}else if(name.contains("发生电子渠道(掌上电力APP、电e宝、95598互动网站、电力微信等)中断超过30分钟的故障")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("37"));
		                    	}else if(name.contains("发生国网营销业务支持系统、全省营销业务应用系统中断超过30分钟的故障")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("38"));
		                    	}else if(name.contains("发生市(区、县)营销业务应用系统中断超过30分钟的故障")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("39"));
		                    	}else if(name.contains("福州30%以上用户,厦门40%以上用户,其他地市50%以上用户的正常用电受到影响")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("19"));
		                    	}else if(name.contains("特级重要电力用户")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("02"));
		                    	}else if(name.contains("一级重要电力用户")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("40"));
		                    	}else if(name.contains("重点保障用户")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("04"));
		                    	}else if(name.contains("地市级监测生命线工程")){
		                    		rowInfo.append(StandarCode.FRPWOFFMONITTYPE_MAP.get("05"));
		                    	}
		                    	
		                  
		                    	
		                    	rowInfo.append(",");
		                    	//拼接应急预案类型代码
		                    	rowInfo.append(StandarCode.EMERTYPE_MAP.get(value.substring(0, 2))).append(",");
		                    	//拼接应急预案状态(暂时根据截取01发布,02处理,03结束来处理。但其实状态位不是这么判断的)		                    		                	
		                    	rowInfo.append(StandarCode.EMERSTATUS_MAP.get(StandarCode.EMERS_TEMP_TATUS_MAP.get(value.substring(4,6)))).append(",");		                    			                    
		                    	//拼接是否用户供电电源全停等
		                    	if(name.contains("用户供电电源全停并造成实质性影响的停电事件")){
		                    		rowInfo.append("\"IS_SUBST_IMP=01\"");
		                    	}else if(name.contains("用户供电可靠性降低")){
		                    		rowInfo.append("\"IS_LESS_RELIABLE=01\"");
		                    	}else if(name.contains("用户供电电源全停")){
		                    		rowInfo.append("\"IS_SUBST_PWOFF=01\"");
		                    	}else{
		                    		rowInfo.append("\"\"");
		                    	}
		                    	rowInfo.append(",");
		                    	//拼接6位代码的value
		                    	rowInfo.append("\"").append(value.substring(0,6)).append("\"").append(",");
		                    	//拼接预警或响应类型 01预警 02响应
		                    	String[] arr=content2.split(",");//arr[0]的值表示级别,arr[1]的值表示 01预警 02响应
		                    	rowInfo.append("\"").append(arr[1]).append("\"");
		                    	
		                    	rowInfo.append("),");
		                    	//添加注释
		                    	rowInfo.append("//");
		                    	switch(arr[0]){
			                    	case "1" : 
			                    		rowInfo.append("一级");
			                    		break;
			                    	case "2" : 
			                    		rowInfo.append("二级");
			                    		break;
			                    	case "3" : 
			                    		rowInfo.append("三级");
			                    		break;
			                    	case "4" : 
			                    		rowInfo.append("四级");
			                    		break;
		                    	}
		                    	
		                    	switch(arr[1]){
		                    	case "01" : 
		                    		rowInfo.append("预警");
		                    		break;
		                    	case "02" : 
		                    		rowInfo.append("响应");
		                    		break;
		                    	}
		                    	switch(value.substring(4,6)){
		                    	case "01":
		                    		rowInfo.append("发布");
		                    		break;
		                    	case "02":
		                    		rowInfo.append("处置/行动");
		                    		break;
		                    	case "03":
		                    		rowInfo.append("结束");
		                    		break;		    
		                    	}
		                    	
		                    	//添加一条记录并换行
		                        result.append(rowInfo).append("\r\n");
		                        	                 
		                    }   
		                }  
		            }    
		        }          
			} catch (EncryptedDocumentException | InvalidFormatException
					| IOException e) {
				e.printStackTrace();
			}finally{
				  try {
					  if(fileIn!=null){
						  fileIn.close();
					  }
					  if(wb!=null){
						  wb.close(); 
					  }					
				} catch (IOException e) {
					e.printStackTrace();
				}  
			        
			}
			return result;
    }
  
    /**
     * 获取单元格信息
     * @param cell
     * @return
     */
    public static String getCellValue(Cell cell) {  
        int cellType = cell.getCellType();  
        String cellValue = "";  
        switch (cellType) {  
        case HSSFCell.CELL_TYPE_NUMERIC:  
            cellValue = String.valueOf(cell.getNumericCellValue());  
            break;    
        case HSSFCell.CELL_TYPE_FORMULA:  
            try {  
                cellValue = cell.getStringCellValue();  
            } catch (IllegalStateException e) {  
                cellValue = String.valueOf(cell.getNumericCellValue());  
            }  
            break;    
        default:  
            cellValue = cell.getStringCellValue();  
        }    
        return cellValue.trim();  
    }  
  
}  

三、结果


总共有198个大笑,搞定!发现Apache的poi.jar还是挺好用的


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:112554次
    • 积分:2593
    • 等级:
    • 排名:第14120名
    • 原创:146篇
    • 转载:21篇
    • 译文:1篇
    • 评论:45条
    最新评论