| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -70,463 +70,464 @@ import org.slf4j.LoggerFactory; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			@SuppressWarnings({ "rawtypes", "unchecked", "hiding" })
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			public class ExcelImportServer extends ImportBaseService {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private final static Logger LOGGER     = LoggerFactory.getLogger(ExcelImportServer.class);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private final static Logger	LOGGER		= LoggerFactory.getLogger(ExcelImportServer.class);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private CellValueServer     cellValueServer;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private CellValueServer		cellValueServer;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private boolean             verfiyFail = false;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 异常数据styler
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private CellStyle           errorCellStyle;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private boolean				verfiyFail	= false;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 异常数据styler
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private CellStyle			errorCellStyle;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    public ExcelImportServer() {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        this.cellValueServer = new CellValueServer();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				public ExcelImportServer() {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					this.cellValueServer = new CellValueServer();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /***
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 向List里面继续添加元素
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param param
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param row
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param titlemap
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param targetId
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param pictures
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private void addListContinue(Object object, ExcelCollectionParams param, Row row,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                 Map<Integer, String> titlemap, String targetId,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                 Map<String, PictureData> pictures,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                 ImportParams params) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Collection collection = (Collection) PoiReflectorUtil.fromCache(object.getClass())
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            .getValue(object, param.getName());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Object entity = PoiPublicUtil.createObject(param.getType(), targetId);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        String picId;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        boolean isUsed = false;// 是否需要加上这个对象
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (int i = row.getFirstCellNum(); i < param.getExcelParams().size(); i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            Cell cell = row.getCell(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            String titleString = (String) titlemap.get(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (param.getExcelParams().containsKey(titleString)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (param.getExcelParams().get(titleString).getType() == 2) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    picId = row.getRowNum() + "_" + i;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    saveImage(object, picId, param.getExcelParams(), titleString, pictures, params);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    saveFieldValue(params, entity, cell, param.getExcelParams(), titleString, row);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                isUsed = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (isUsed) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            collection.add(entity);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/***
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 向List里面继续添加元素
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param param
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param row
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param titlemap
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param targetId
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param pictures
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private void addListContinue(Object object, ExcelCollectionParams param, Row row,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                             Map<Integer, String> titlemap, String targetId,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                             Map<String, PictureData> pictures,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                             ImportParams params) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Collection collection = (Collection) PoiReflectorUtil.fromCache(object.getClass())
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					    .getValue(object, param.getName());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Object entity = PoiPublicUtil.createObject(param.getType(), targetId);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					String picId;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					boolean isUsed = false;// 是否需要加上这个对象
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					for (int i = row.getFirstCellNum(); i < param.getExcelParams().size(); i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						Cell cell = row.getCell(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						String titleString = (String) titlemap.get(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (param.getExcelParams().containsKey(titleString)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if (param.getExcelParams().get(titleString).getType() == 2) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								picId = row.getRowNum() + "_" + i;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								saveImage(object, picId, param.getExcelParams(), titleString, pictures, params);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								saveFieldValue(params, entity, cell, param.getExcelParams(), titleString, row);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							isUsed = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (isUsed) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						collection.add(entity);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 获取key的值,针对不同类型获取不同的值
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @author JueYue
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     *  2013-11-21
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param cell
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private String getKeyValue(Cell cell) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Object obj = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        switch (cell.getCellType()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            case Cell.CELL_TYPE_STRING:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                obj = cell.getStringCellValue();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                break;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            case Cell.CELL_TYPE_BOOLEAN:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                obj = cell.getBooleanCellValue();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                break;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            case Cell.CELL_TYPE_NUMERIC:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                obj = cell.getNumericCellValue();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                break;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            case Cell.CELL_TYPE_FORMULA:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                obj = cell.getCellFormula();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                break;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            default:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                cell.setCellType(Cell.CELL_TYPE_STRING);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                obj = cell.getStringCellValue();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return obj == null ? null : obj.toString().trim();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 获取key的值,针对不同类型获取不同的值
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @author JueYue
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 *  2013-11-21
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param cell
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private String getKeyValue(Cell cell) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Object obj = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					switch (cell.getCellType()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						case Cell.CELL_TYPE_STRING:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							obj = cell.getStringCellValue();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							break;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						case Cell.CELL_TYPE_BOOLEAN:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							obj = cell.getBooleanCellValue();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							break;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						case Cell.CELL_TYPE_NUMERIC:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							obj = cell.getNumericCellValue();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							break;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						case Cell.CELL_TYPE_FORMULA:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							obj = cell.getCellFormula();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							break;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						default:
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							cell.setCellType(Cell.CELL_TYPE_STRING);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							obj = cell.getStringCellValue();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return obj == null ? null : obj.toString().trim();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 获取保存的真实路径
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param excelImportEntity
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @throws Exception
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private String getSaveUrl(ExcelImportEntity excelImportEntity, Object object) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        String url = "";
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (excelImportEntity.getSaveUrl().equals("upload")) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (excelImportEntity.getMethods() != null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                && excelImportEntity.getMethods().size() > 0) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                object = getFieldBySomeMethod(excelImportEntity.getMethods(), object);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            url = object.getClass().getName()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                .split("\\.")[object.getClass().getName().split("\\.").length - 1];
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return excelImportEntity.getSaveUrl() + "/"
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                   + url;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return excelImportEntity.getSaveUrl();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 获取保存的真实路径
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param excelImportEntity
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @throws Exception
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private String getSaveUrl(ExcelImportEntity excelImportEntity, Object object) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					String url = "";
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (excelImportEntity.getSaveUrl().equals("upload")) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (excelImportEntity.getMethods() != null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						    && excelImportEntity.getMethods().size() > 0) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							object = getFieldBySomeMethod(excelImportEntity.getMethods(), object);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						url = object.getClass().getName()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						    .split("\\.")[object.getClass().getName().split("\\.").length - 1];
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						return excelImportEntity.getSaveUrl() + "/" + url;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return excelImportEntity.getSaveUrl();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private <T> List<T> importExcel(Collection<T> result, Sheet sheet, Class<?> pojoClass,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                    ImportParams params,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                    Map<String, PictureData> pictures) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        List collection = new ArrayList();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Map<String, ExcelImportEntity> excelParams = new HashMap<String, ExcelImportEntity>();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        List<ExcelCollectionParams> excelCollection = new ArrayList<ExcelCollectionParams>();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        String targetId = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (!Map.class.equals(pojoClass)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            Field fileds[] = PoiPublicUtil.getClassFields(pojoClass);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (etarget != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                targetId = etarget.value();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            getAllExcelField(targetId, fileds, excelParams, excelCollection, pojoClass, null);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Iterator<Row> rows = sheet.rowIterator();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (int j = 0; j < params.getTitleRows(); j++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            rows.next();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Map<Integer, String> titlemap = getTitleMap(rows, params, excelCollection);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        checkIsValidTemplate(titlemap, excelParams, params, excelCollection);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Row row = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Object object = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        String picId;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        while (rows.hasNext()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			               && (row == null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                   || sheet.getLastRowNum() - row.getRowNum() > params.getLastOfInvalidRow())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            row = rows.next();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            // 判断是集合元素还是不是集合元素,如果是就继续加入这个集合,不是就创建新的对象
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            // keyIndex 如果为空就不处理,仍然处理这一行
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (params.getKeyIndex() != null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                && (row.getCell(params.getKeyIndex()) == null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    || StringUtils.isEmpty(getKeyValue(row.getCell(params.getKeyIndex()))))
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                && object != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                for (ExcelCollectionParams param : excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    addListContinue(object, param, row, titlemap, targetId, pictures, params);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                object = PoiPublicUtil.createObject(pojoClass, targetId);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                try {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    for (int i = row.getFirstCellNum(), le = titlemap.size(); i < le; i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        Cell cell = row.getCell(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        String titleString = (String) titlemap.get(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        if (excelParams.containsKey(titleString) || Map.class.equals(pojoClass)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                            if (excelParams.get(titleString) != null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                && excelParams.get(titleString).getType() == 2) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                picId = row.getRowNum() + "_" + i;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                saveImage(object, picId, excelParams, titleString, pictures,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                    params);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                            } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                saveFieldValue(params, object, cell, excelParams, titleString, row);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private <T> List<T> importExcel(Collection<T> result, Sheet sheet, Class<?> pojoClass,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                ImportParams params,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                Map<String, PictureData> pictures) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					List collection = new ArrayList();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Map<String, ExcelImportEntity> excelParams = new HashMap<String, ExcelImportEntity>();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					List<ExcelCollectionParams> excelCollection = new ArrayList<ExcelCollectionParams>();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					String targetId = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (!Map.class.equals(pojoClass)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						Field fileds[] = PoiPublicUtil.getClassFields(pojoClass);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (etarget != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							targetId = etarget.value();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						getAllExcelField(targetId, fileds, excelParams, excelCollection, pojoClass, null);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Iterator<Row> rows = sheet.rowIterator();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					for (int j = 0; j < params.getTitleRows(); j++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						rows.next();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Map<Integer, String> titlemap = getTitleMap(rows, params, excelCollection);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					checkIsValidTemplate(titlemap, excelParams, params, excelCollection);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Row row = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Object object = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					String picId;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					while (rows.hasNext()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					       && (row == null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					           || sheet.getLastRowNum() - row.getRowNum() > params.getLastOfInvalidRow())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						row = rows.next();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						// 判断是集合元素还是不是集合元素,如果是就继续加入这个集合,不是就创建新的对象
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						// keyIndex 如果为空就不处理,仍然处理这一行
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (params.getKeyIndex() != null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						    && (row.getCell(params.getKeyIndex()) == null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						        || StringUtils.isEmpty(getKeyValue(row.getCell(params.getKeyIndex()))))
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						    && object != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							for (ExcelCollectionParams param : excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								addListContinue(object, param, row, titlemap, targetId, pictures, params);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							object = PoiPublicUtil.createObject(pojoClass, targetId);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							try {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								for (int i = row.getFirstCellNum(), le = titlemap.size(); i < le; i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									Cell cell = row.getCell(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									String titleString = (String) titlemap.get(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									if (excelParams.containsKey(titleString) || Map.class.equals(pojoClass)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
										if (excelParams.get(titleString) != null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
										    && excelParams.get(titleString).getType() == 2) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
											picId = row.getRowNum() + "_" + i;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
											saveImage(object, picId, excelParams, titleString, pictures,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
											    params);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
										} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
											saveFieldValue(params, object, cell, excelParams, titleString, row);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
										}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    for (ExcelCollectionParams param : excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        addListContinue(object, param, row, titlemap, targetId, pictures, params);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    if (verifyingDataValidity(object, row, params, pojoClass)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        collection.add(object);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                } catch (ExcelImportException e) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    if (!e.getType().equals(ExcelImportEnum.VERIFY_ERROR)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        throw new ExcelImportException(e.getType(), e);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return collection;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								for (ExcelCollectionParams param : excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									addListContinue(object, param, row, titlemap, targetId, pictures, params);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								if (verifyingDataValidity(object, row, params, pojoClass)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									collection.add(object);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							} catch (ExcelImportException e) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								if (!e.getType().equals(ExcelImportEnum.VERIFY_ERROR)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									throw new ExcelImportException(e.getType(), e);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return collection;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 校验数据合法性
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param row
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param pojoClass
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private boolean verifyingDataValidity(Object object, Row row, ImportParams params,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                          Class<?> pojoClass) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        boolean isAdd = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Cell cell = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (params.isNeedVerfiy()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            String errorMsg = PoiValidationUtil.validation(object);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (StringUtils.isNotEmpty(errorMsg)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                cell = row.createCell(row.getLastCellNum());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                cell.setCellValue(errorMsg);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (object instanceof IExcelModel) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    IExcelModel model = (IExcelModel) object;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    model.setErrorMsg(errorMsg);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    isAdd = false;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                verfiyFail = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (params.getVerifyHanlder() != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            ExcelVerifyHanlderResult result = params.getVerifyHanlder().verifyHandler(object);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (!result.isSuccess()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (cell == null)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    cell = row.createCell(row.getLastCellNum());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                cell.setCellValue((StringUtils.isNoneBlank(cell.getStringCellValue())
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    ? cell.getStringCellValue() + "," : "") + result.getMsg());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (object instanceof IExcelModel) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    IExcelModel model = (IExcelModel) object;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    model.setErrorMsg((StringUtils.isNoneBlank(model.getErrorMsg())
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        ? model.getErrorMsg() + "," : "") + result.getMsg());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    isAdd = false;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                verfiyFail = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (cell != null)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            cell.setCellStyle(errorCellStyle);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return isAdd;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 校验数据合法性
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param row
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param pojoClass
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private boolean verifyingDataValidity(Object object, Row row, ImportParams params,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                      Class<?> pojoClass) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					boolean isAdd = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Cell cell = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (params.isNeedVerfiy()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						String errorMsg = PoiValidationUtil.validation(object);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (StringUtils.isNotEmpty(errorMsg)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							cell = row.createCell(row.getLastCellNum());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							cell.setCellValue(errorMsg);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if (object instanceof IExcelModel) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								IExcelModel model = (IExcelModel) object;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								model.setErrorMsg(errorMsg);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								isAdd = false;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							verfiyFail = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (params.getVerifyHanlder() != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						ExcelVerifyHanlderResult result = params.getVerifyHanlder().verifyHandler(object);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (!result.isSuccess()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if (cell == null)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								cell = row.createCell(row.getLastCellNum());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							cell.setCellValue((StringUtils.isNoneBlank(cell.getStringCellValue())
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							    ? cell.getStringCellValue() + "," : "") + result.getMsg());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if (object instanceof IExcelModel) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								IExcelModel model = (IExcelModel) object;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								model.setErrorMsg((StringUtils.isNoneBlank(model.getErrorMsg())
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								    ? model.getErrorMsg() + "," : "") + result.getMsg());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								isAdd = false;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							verfiyFail = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (cell != null)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						cell.setCellStyle(errorCellStyle);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return isAdd;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 获取表格字段列名对应信息
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param rows
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param excelCollection
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private Map<Integer, String> getTitleMap(Iterator<Row> rows, ImportParams params,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                             List<ExcelCollectionParams> excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Map<Integer, String> titlemap = new HashMap<Integer, String>();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Iterator<Cell> cellTitle;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        String collectionName = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ExcelCollectionParams collectionParams = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Row row = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (int j = 0; j < params.getHeadRows(); j++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            row = rows.next();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (row == null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                continue;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            cellTitle = row.cellIterator();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            while (cellTitle.hasNext()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                Cell cell = cellTitle.next();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                String value = getKeyValue(cell);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                int i = cell.getColumnIndex();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                //用以支持重名导入
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (StringUtils.isNotEmpty(value)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    if (titlemap.containsKey(i)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        collectionName = titlemap.get(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        collectionParams = getCollectionParams(excelCollection, collectionName);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        titlemap.put(i, collectionName + "_" + value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    } else if (StringUtils.isNotEmpty(collectionName) && collectionParams
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        .getExcelParams().containsKey(collectionName + "_" + value)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        titlemap.put(i, collectionName + "_" + value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        collectionName = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        collectionParams = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    if (StringUtils.isEmpty(collectionName)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        titlemap.put(i, value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return titlemap;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 获取表格字段列名对应信息
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param rows
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param excelCollection
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private Map<Integer, String> getTitleMap(Iterator<Row> rows, ImportParams params,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                         List<ExcelCollectionParams> excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Map<Integer, String> titlemap = new HashMap<Integer, String>();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Iterator<Cell> cellTitle;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					String collectionName = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					ExcelCollectionParams collectionParams = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Row row = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					for (int j = 0; j < params.getHeadRows(); j++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						row = rows.next();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (row == null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							continue;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						cellTitle = row.cellIterator();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						while (cellTitle.hasNext()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							Cell cell = cellTitle.next();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							String value = getKeyValue(cell);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							value =  value.replace("\n", "");
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							int i = cell.getColumnIndex();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							//用以支持重名导入
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if (StringUtils.isNotEmpty(value)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								if (titlemap.containsKey(i)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									collectionName = titlemap.get(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									collectionParams = getCollectionParams(excelCollection, collectionName);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									titlemap.put(i, collectionName + "_" + value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								} else if (StringUtils.isNotEmpty(collectionName) && collectionParams != null
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								           && collectionParams.getExcelParams()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								               .containsKey(collectionName + "_" + value)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									titlemap.put(i, collectionName + "_" + value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									collectionName = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									collectionParams = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								if (StringUtils.isEmpty(collectionName)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									titlemap.put(i, value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return titlemap;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 获取这个名称对应的集合信息
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param excelCollection 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param collectionName
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private ExcelCollectionParams getCollectionParams(List<ExcelCollectionParams> excelCollection,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                                      String collectionName) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (ExcelCollectionParams excelCollectionParams : excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (collectionName.equals(excelCollectionParams.getExcelName())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                return excelCollectionParams;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 获取这个名称对应的集合信息
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param excelCollection 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param collectionName
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private ExcelCollectionParams getCollectionParams(List<ExcelCollectionParams> excelCollection,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                                  String collectionName) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					for (ExcelCollectionParams excelCollectionParams : excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (collectionName.equals(excelCollectionParams.getExcelName())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							return excelCollectionParams;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * Excel 导入 field 字段类型 Integer,Long,Double,Date,String,Boolean
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param inputstream
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param pojoClass
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @throws Exception
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    public ExcelImportResult importExcelByIs(InputStream inputstream, Class<?> pojoClass,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                             ImportParams params) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (LOGGER.isDebugEnabled()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            LOGGER.debug("Excel import start ,class is {}", pojoClass);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        List<T> result = new ArrayList<T>();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Workbook book = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        boolean isXSSFWorkbook = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (!(inputstream.markSupported())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            inputstream = new PushbackInputStream(inputstream, 8);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (POIFSFileSystem.hasPOIFSHeader(inputstream)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            book = new HSSFWorkbook(inputstream);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            isXSSFWorkbook = false;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } else if (POIXMLDocument.hasOOXMLHeader(inputstream)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            book = new XSSFWorkbook(OPCPackage.open(inputstream));
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        createErrorCellStyle(book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Map<String, PictureData> pictures;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (int i = params.getStartSheetIndex(); i < params.getStartSheetIndex()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                                      + params.getSheetNum(); i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (LOGGER.isDebugEnabled()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                LOGGER.debug(" start to read excel by is ,startTime is {}", new Date().getTime());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (isXSSFWorkbook) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(i),
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    (XSSFWorkbook) book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                pictures = PoiPublicUtil.getSheetPictrues03((HSSFSheet) book.getSheetAt(i),
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    (HSSFWorkbook) book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (LOGGER.isDebugEnabled()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                LOGGER.debug(" end to read excel by is ,endTime is {}", new Date().getTime());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            result.addAll(importExcel(result, book.getSheetAt(i), pojoClass, params, pictures));
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (LOGGER.isDebugEnabled()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                LOGGER.debug(" end to read excel list by pos ,endTime is {}", new Date().getTime());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (params.isNeedSave()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            saveThisExcel(params, pojoClass, isXSSFWorkbook, book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return new ExcelImportResult(result, verfiyFail, book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * Excel 导入 field 字段类型 Integer,Long,Double,Date,String,Boolean
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param inputstream
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param pojoClass
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @return
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @throws Exception
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				public ExcelImportResult importExcelByIs(InputStream inputstream, Class<?> pojoClass,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                         ImportParams params) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (LOGGER.isDebugEnabled()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						LOGGER.debug("Excel import start ,class is {}", pojoClass);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					List<T> result = new ArrayList<T>();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Workbook book = null;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					boolean isXSSFWorkbook = true;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (!(inputstream.markSupported())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						inputstream = new PushbackInputStream(inputstream, 8);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (POIFSFileSystem.hasPOIFSHeader(inputstream)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						book = new HSSFWorkbook(inputstream);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						isXSSFWorkbook = false;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} else if (POIXMLDocument.hasOOXMLHeader(inputstream)) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						book = new XSSFWorkbook(OPCPackage.open(inputstream));
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					createErrorCellStyle(book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Map<String, PictureData> pictures;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					for (int i = params.getStartSheetIndex(); i < params.getStartSheetIndex()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					                                              + params.getSheetNum(); i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (LOGGER.isDebugEnabled()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							LOGGER.debug(" start to read excel by is ,startTime is {}", new Date().getTime());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (isXSSFWorkbook) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(i),
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							    (XSSFWorkbook) book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							pictures = PoiPublicUtil.getSheetPictrues03((HSSFSheet) book.getSheetAt(i),
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							    (HSSFWorkbook) book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (LOGGER.isDebugEnabled()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							LOGGER.debug(" end to read excel by is ,endTime is {}", new Date().getTime());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						result.addAll(importExcel(result, book.getSheetAt(i), pojoClass, params, pictures));
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (LOGGER.isDebugEnabled()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							LOGGER.debug(" end to read excel list by pos ,endTime is {}", new Date().getTime());
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (params.isNeedSave()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						saveThisExcel(params, pojoClass, isXSSFWorkbook, book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					return new ExcelImportResult(result, verfiyFail, book);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 检查是不是合法的模板
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param titlemap
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param excelParams
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param excelCollection 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private void checkIsValidTemplate(Map<Integer, String> titlemap,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                      Map<String, ExcelImportEntity> excelParams,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                      ImportParams params,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                      List<ExcelCollectionParams> excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 检查是不是合法的模板
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param titlemap
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param excelParams
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param excelCollection 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private void checkIsValidTemplate(Map<Integer, String> titlemap,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                  Map<String, ExcelImportEntity> excelParams,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                  ImportParams params,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                                  List<ExcelCollectionParams> excelCollection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (params.getImportFields() != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            for (int i = 0, le = params.getImportFields().length; i < le; i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (!titlemap.containsValue(params.getImportFields()[i])) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    throw new ExcelImportException(ExcelImportEnum.IS_NOT_A_VALID_TEMPLATE);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            Collection<ExcelImportEntity> collection = excelParams.values();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            for (ExcelImportEntity excelImportEntity : collection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (excelImportEntity.isImportField()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    && !titlemap.containsValue(excelImportEntity.getName())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    LOGGER.error(excelImportEntity.getName() + "必须有,但是没找到");
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    throw new ExcelImportException(ExcelImportEnum.IS_NOT_A_VALID_TEMPLATE);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (params.getImportFields() != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						for (int i = 0, le = params.getImportFields().length; i < le; i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if (!titlemap.containsValue(params.getImportFields()[i])) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								throw new ExcelImportException(ExcelImportEnum.IS_NOT_A_VALID_TEMPLATE);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						Collection<ExcelImportEntity> collection = excelParams.values();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						for (ExcelImportEntity excelImportEntity : collection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							if (excelImportEntity.isImportField()
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							    && !titlemap.containsValue(excelImportEntity.getName())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								LOGGER.error(excelImportEntity.getName() + "必须有,但是没找到");
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								throw new ExcelImportException(ExcelImportEnum.IS_NOT_A_VALID_TEMPLATE);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            for (int i = 0, le = excelCollection.size(); i < le; i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                ExcelCollectionParams collectionparams = excelCollection.get(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                collection = collectionparams.getExcelParams().values();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                for (ExcelImportEntity excelImportEntity : collection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    if (excelImportEntity.isImportField() && !titlemap.containsValue(
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        collectionparams.getExcelName() + "_" + excelImportEntity.getName())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        throw new ExcelImportException(ExcelImportEnum.IS_NOT_A_VALID_TEMPLATE);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						for (int i = 0, le = excelCollection.size(); i < le; i++) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							ExcelCollectionParams collectionparams = excelCollection.get(i);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							collection = collectionparams.getExcelParams().values();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							for (ExcelImportEntity excelImportEntity : collection) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								if (excelImportEntity.isImportField() && !titlemap.containsValue(
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								    collectionparams.getExcelName() + "_" + excelImportEntity.getName())) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
									throw new ExcelImportException(ExcelImportEnum.IS_NOT_A_VALID_TEMPLATE);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
								}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 保存字段值(获取值,校验值,追加错误信息)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param cell
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param excelParams
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param titleString
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param row
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @throws Exception
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private void saveFieldValue(ImportParams params, Object object, Cell cell,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                Map<String, ExcelImportEntity> excelParams, String titleString,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                Row row) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Object value = cellValueServer.getValue(params.getDataHanlder(), object, cell, excelParams,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            titleString);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (object instanceof Map) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (params.getDataHanlder() != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                params.getDataHanlder().setMapValue((Map) object, titleString, value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                ((Map) object).put(titleString, value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            setValues(excelParams.get(titleString), object, value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 保存字段值(获取值,校验值,追加错误信息)
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param cell
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param excelParams
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param titleString
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param row
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @throws Exception
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private void saveFieldValue(ImportParams params, Object object, Cell cell,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                            Map<String, ExcelImportEntity> excelParams, String titleString,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                            Row row) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Object value = cellValueServer.getValue(params.getDataHanlder(), object, cell, excelParams,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					    titleString);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (object instanceof Map) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (params.getDataHanlder() != null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							params.getDataHanlder().setMapValue((Map) object, titleString, value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							((Map) object).put(titleString, value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						setValues(excelParams.get(titleString), object, value);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param picId
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param excelParams
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param titleString
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param pictures
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     * @throws Exception
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private void saveImage(Object object, String picId, Map<String, ExcelImportEntity> excelParams,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                           String titleString, Map<String, PictureData> pictures,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                           ImportParams params) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (pictures == null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        PictureData image = pictures.get(picId);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if(image == null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        	return;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        byte[] data = image.getData();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        String fileName = "pic" + Math.round(Math.random() * 100000000000L);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        fileName += "." + PoiPublicUtil.getFileExtendName(data);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (excelParams.get(titleString).getSaveType() == 1) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            String path = PoiPublicUtil
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                .getWebRootPath(getSaveUrl(excelParams.get(titleString), object));
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            File savefile = new File(path);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (!savefile.exists()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                savefile.mkdirs();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            savefile = new File(path + "/" + fileName);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            FileOutputStream fos = new FileOutputStream(savefile);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            try {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                fos.write(data);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } finally {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                IOUtils.closeQuietly(fos);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            setValues(excelParams.get(titleString), object,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                getSaveUrl(excelParams.get(titleString), object) + "/" + fileName);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            setValues(excelParams.get(titleString), object, data);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				/**
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * 
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param object
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param picId
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param excelParams
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param titleString
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param pictures
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @param params
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 * @throws Exception
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				 */
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private void saveImage(Object object, String picId, Map<String, ExcelImportEntity> excelParams,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                       String titleString, Map<String, PictureData> pictures,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				                       ImportParams params) throws Exception {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (pictures == null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						return;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					PictureData image = pictures.get(picId);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (image == null) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						return;
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					byte[] data = image.getData();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					String fileName = "pic" + Math.round(Math.random() * 100000000000L);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					fileName += "." + PoiPublicUtil.getFileExtendName(data);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					if (excelParams.get(titleString).getSaveType() == 1) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						String path = PoiPublicUtil
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						    .getWebRootPath(getSaveUrl(excelParams.get(titleString), object));
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						File savefile = new File(path);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						if (!savefile.exists()) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							savefile.mkdirs();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						savefile = new File(path + "/" + fileName);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						FileOutputStream fos = new FileOutputStream(savefile);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						try {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							fos.write(data);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						} finally {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
							IOUtils.closeQuietly(fos);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						setValues(excelParams.get(titleString), object,
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						    getSaveUrl(excelParams.get(titleString), object) + "/" + fileName);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					} else {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
						setValues(excelParams.get(titleString), object, data);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    private void createErrorCellStyle(Workbook workbook) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        errorCellStyle = workbook.createCellStyle();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        Font font = workbook.createFont();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        font.setColor(Font.COLOR_RED);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        errorCellStyle.setFont(font);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				private void createErrorCellStyle(Workbook workbook) {
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					errorCellStyle = workbook.createCellStyle();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					Font font = workbook.createFont();
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					font.setColor(Font.COLOR_RED);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
					errorCellStyle.setFont(font);
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
				}
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			}
 |