diff --git a/deploy.bat b/deploy.bat index 92a7c3f..35b4a09 100644 --- a/deploy.bat +++ b/deploy.bat @@ -1 +1 @@ -cmd /k mvn clean deploy -DskipTest \ No newline at end of file +cmd /k mvn clean deploy -D skipTest \ No newline at end of file diff --git a/easypoi-base/.classpath b/easypoi-base/.classpath index 2aabaef..c9464c0 100644 --- a/easypoi-base/.classpath +++ b/easypoi-base/.classpath @@ -6,8 +6,9 @@ - + + @@ -16,9 +17,8 @@ - + - diff --git a/easypoi-base/pom.xml b/easypoi-base/pom.xml index bf8bb20..3ecfdbf 100644 --- a/easypoi-base/pom.xml +++ b/easypoi-base/pom.xml @@ -4,7 +4,7 @@ org.jeecgframework easypoi - 2.0.2 + 2.0.6-SNAPSHOT easypoi-base diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java index aadd3ea..24e3203 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/ExcelExportUtil.java @@ -8,6 +8,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.TemplateExportParams; +import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; import org.jeecgframework.poi.excel.export.ExcelExportServer; import org.jeecgframework.poi.excel.export.template.ExcelExportOfTemplateUtil; @@ -54,6 +55,20 @@ public final class ExcelExportUtil { new ExcelExportServer().createSheet(workbook, entity, pojoClass, dataSet); return workbook; } + /** + * @param entity + * 表格标题属性 + * @param pojoClass + * Excel对象Class + * @param dataSet + * Excel对象数据List + */ + public static HSSFWorkbook exportExcel(ExportParams entity, + List entityList, Collection> dataSet) { + HSSFWorkbook workbook = new HSSFWorkbook(); + new ExcelExportServer().createSheetForMap(workbook, entity, entityList, dataSet); + return workbook; + } /** * 导出文件通过模板解析 diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ExportParams.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ExportParams.java index dbd9132..90aee6b 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ExportParams.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/ExportParams.java @@ -49,6 +49,10 @@ public class ExportParams extends ExcelBaseParams { * 过滤的属性 */ private String[] exclusions; + /** + * 是否添加需要需要 + */ + private boolean addIndex; /** * 表头颜色 */ @@ -122,4 +126,12 @@ public class ExportParams extends ExcelBaseParams { public void setSecondTitleHeight(short secondTitleHeight) { this.secondTitleHeight = secondTitleHeight; } + + public boolean isAddIndex() { + return addIndex; + } + + public void setAddIndex(boolean addIndex) { + this.addIndex = addIndex; + } } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelBaseEntity.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelBaseEntity.java index a998936..548de80 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelBaseEntity.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelBaseEntity.java @@ -11,11 +11,11 @@ public class ExcelBaseEntity { /** * 对应name */ - private String name; + protected String name; /** * 对应type */ - private int type; + private int type = 1; /** * 数据库格式 */ diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java index fec230c..09d62ad 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/params/ExcelExportEntity.java @@ -10,16 +10,41 @@ import java.util.List; */ public class ExcelExportEntity extends ExcelBaseEntity { - private int width; - private int height; + public ExcelExportEntity() { + + } + + public ExcelExportEntity(String name) { + super.name = name; + } + + public ExcelExportEntity(String name, Object key) { + super.name = name; + this.key = key; + } + + public ExcelExportEntity(String name, Object key, int width) { + super.name = name; + this.width = width; + this.key = key; + } + + /** + * 如果是MAP导出,这个是map的key + */ + private Object key; + + private int width = 10; + + private int height = 10; /** * 图片的类型,1是文件,2是数据库 */ - private int exportImageType; + private int exportImageType = 0; /** * 排序顺序 */ - private int orderNum; + private int orderNum = 0; /** * 是否支持换行 */ @@ -123,4 +148,12 @@ public class ExcelExportEntity extends ExcelBaseEntity { this.mergeVertical = mergeVertical; } + public Object getKey() { + return key; + } + + public void setKey(Object key) { + this.key = key; + } + } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/vo/PoiBaseConstants.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/vo/PoiBaseConstants.java index 9469043..f37941f 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/vo/PoiBaseConstants.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/entity/vo/PoiBaseConstants.java @@ -11,5 +11,7 @@ public interface PoiBaseConstants { public static String SET = "set"; public static String IS = "is"; + + public static String IS_ADD_INDEX = "isAddIndex"; } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java index 344f158..e9b628c 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/ExcelExportServer.java @@ -22,6 +22,7 @@ import org.apache.poi.ss.util.CellRangeAddress; import org.jeecgframework.poi.excel.annotation.ExcelTarget; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; +import org.jeecgframework.poi.excel.entity.vo.PoiBaseConstants; import org.jeecgframework.poi.excel.export.base.ExcelExportBase; import org.jeecgframework.poi.exception.excel.ExcelExportException; import org.jeecgframework.poi.exception.excel.enums.ExcelExportEnum; @@ -36,8 +37,9 @@ import org.slf4j.LoggerFactory; * @date 2014年6月17日 下午5:30:54 */ public class ExcelExportServer extends ExcelExportBase { - - private final static Logger logger = LoggerFactory.getLogger(ExcelExportServer.class); + + private final static Logger logger = LoggerFactory + .getLogger(ExcelExportServer.class); private static final short cellFormat = HSSFDataFormat .getBuiltinFormat("TEXT"); @@ -47,8 +49,8 @@ public class ExcelExportServer extends ExcelExportBase { public void createSheet(HSSFWorkbook workbook, ExportParams entity, Class pojoClass, Collection dataSet) { - if(logger.isDebugEnabled()){ - logger.debug("Excel export start ,class is {}",pojoClass); + if (logger.isDebugEnabled()) { + logger.debug("Excel export start ,class is {}", pojoClass); } if (workbook == null || entity == null || pojoClass == null || dataSet == null) { @@ -71,6 +73,9 @@ public class ExcelExportServer extends ExcelExportBase { Map styles = createStyles(workbook); Drawing patriarch = sheet.createDrawingPatriarch(); List excelParams = new ArrayList(); + if (entity.isAddIndex()) { + excelParams.add(indexExcelEntity()); + } // 得到所有字段 Field fileds[] = POIPublicUtil.getClassFields(pojoClass); ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); @@ -83,7 +88,7 @@ public class ExcelExportServer extends ExcelExportBase { int titleHeight = index; setCellWith(excelParams, sheet); short rowHeight = getRowHeight(excelParams); - + setCurrentIndex(1); Iterator its = dataSet.iterator(); List tempList = new ArrayList(); while (its.hasNext()) { @@ -107,12 +112,21 @@ public class ExcelExportServer extends ExcelExportBase { } } catch (Exception e) { - e.printStackTrace(); + logger.error(e.getMessage(),e.fillInStackTrace()); throw new ExcelExportException(ExcelExportEnum.EXPORT_ERROR, e.getCause()); } } + private ExcelExportEntity indexExcelEntity() { + ExcelExportEntity entity = new ExcelExportEntity(); + entity.setOrderNum(0); + entity.setName("序号"); + entity.setWidth(10); + entity.setFormat(PoiBaseConstants.IS_ADD_INDEX); + return entity; + } + private int createHeaderAndTitle(ExportParams entity, Sheet sheet, HSSFWorkbook workbook, List excelParams) { int rows = 0, feildWidth = getFieldWidth(excelParams); @@ -298,4 +312,69 @@ public class ExcelExportServer extends ExcelExportBase { return map.get("two"); } + public void createSheetForMap(HSSFWorkbook workbook, ExportParams entity, + List entityList, + Collection> dataSet) { + if (workbook == null || entity == null || entityList == null + || dataSet == null) { + throw new ExcelExportException(ExcelExportEnum.PARAMETER_ERROR); + } + Sheet sheet = null; + try { + sheet = workbook.createSheet(entity.getSheetName()); + } catch (Exception e) { + // 重复遍历,出现了重名现象,创建非指定的名称Sheet + sheet = workbook.createSheet(); + } + try { + dataHanlder = entity.getDataHanlder(); + if (dataHanlder != null) { + needHanlderList = Arrays.asList(dataHanlder + .getNeedHandlerFields()); + } + // 创建表格属性 + Map styles = createStyles(workbook); + Drawing patriarch = sheet.createDrawingPatriarch(); + List excelParams = new ArrayList(); + if (entity.isAddIndex()) { + excelParams.add(indexExcelEntity()); + } + excelParams.addAll(entityList); + sortAllParams(excelParams); + int index = createHeaderAndTitle(entity, sheet, workbook, + excelParams); + int titleHeight = index; + setCellWith(excelParams, sheet); + short rowHeight = getRowHeight(excelParams); + setCurrentIndex(1); + Iterator its = dataSet.iterator(); + List tempList = new ArrayList(); + while (its.hasNext()) { + Object t = its.next(); + index += createCells(patriarch, index, t, excelParams, sheet, + workbook, styles, rowHeight); + tempList.add(t); + if (index >= MAX_NUM) + break; + } + mergeCells(sheet, excelParams, titleHeight); + + its = dataSet.iterator(); + for (int i = 0, le = tempList.size(); i < le; i++) { + its.next(); + its.remove(); + } + // 发现还有剩余list 继续循环创建Sheet + if (dataSet.size() > 0) { + createSheetForMap(workbook, entity, entityList, dataSet); + } + + } catch (Exception e) { + e.printStackTrace(); + logger.error(e.getMessage(),e.fillInStackTrace()); + throw new ExcelExportException(ExcelExportEnum.EXPORT_ERROR, + e.getCause()); + } + } + } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java index d5643fb..b23e1ac 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExcelExportBase.java @@ -28,6 +28,7 @@ import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellRangeAddress; import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; import org.jeecgframework.poi.excel.entity.params.MergeEntity; +import org.jeecgframework.poi.excel.entity.vo.PoiBaseConstants; import org.jeecgframework.poi.util.POIPublicUtil; /** @@ -38,6 +39,8 @@ import org.jeecgframework.poi.util.POIPublicUtil; */ public abstract class ExcelExportBase extends ExportBase { + private int currentIndex = 0; + /** * 合并单元格 * @@ -213,7 +216,9 @@ public abstract class ExcelExportBase extends ExportBase { Row row = sheet.createRow(index); row.setHeight(rowHeight); int maxHeight = 1, cellNum = 0; - for (int k = 0, paramSize = excelParams.size(); k < paramSize; k++) { + int indexKey = createIndexCell(row, styles, index, excelParams.get(0)); + cellNum += indexKey; + for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) { entity = excelParams.get(k); if (entity.getList() != null) { Collection list = (Collection) entity.getMethod().invoke( @@ -246,7 +251,7 @@ public abstract class ExcelExportBase extends ExportBase { } // 合并需要合并的单元格 cellNum = 0; - for (int k = 0, paramSize = excelParams.size(); k < paramSize; k++) { + for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) { entity = excelParams.get(k); if (entity.getList() != null) { cellNum += entity.getList().size(); @@ -260,6 +265,20 @@ public abstract class ExcelExportBase extends ExportBase { } + private int createIndexCell(Row row, Map styles, + int index, ExcelExportEntity excelExportEntity) { + if (excelExportEntity.getName().equals("序号") + && excelExportEntity.getFormat().equals( + PoiBaseConstants.IS_ADD_INDEX)) { + createStringCell(row, 0, currentIndex + "", + index % 2 == 0 ? getStyles(styles, false, false) + : getStyles(styles, true, false), null); + currentIndex = currentIndex + 1; + return 1; + } + return 0; + } + public CellStyle getStyles(Map styles, boolean b, boolean wrap) { return null; @@ -417,4 +436,8 @@ public abstract class ExcelExportBase extends ExportBase { return length; } + public void setCurrentIndex(int currentIndex) { + this.currentIndex = currentIndex; + } + } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java index ba40aac..8c5de1b 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/base/ExportBase.java @@ -9,6 +9,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.Map; import org.apache.commons.lang.StringUtils; import org.jeecgframework.poi.excel.annotation.Excel; @@ -26,7 +27,7 @@ import org.jeecgframework.poi.util.POIPublicUtil; * @date 2014年8月9日 下午11:01:32 */ public class ExportBase { - + protected IExcelDataHandler dataHanlder; protected List needHanlderList; @@ -54,7 +55,11 @@ public class ExportBase { targetId)) { continue; } - if (POIPublicUtil.isCollection(field.getType())) { + // 首先判断Excel 可能一下特殊数据用户回自定义处理 + if (field.getAnnotation(Excel.class) != null) { + excelParams.add(createExcelExportEntity(field, targetId, + pojoClass, getMethods)); + } else if (POIPublicUtil.isCollection(field.getType())) { ExcelCollection excel = field .getAnnotation(ExcelCollection.class); ParameterizedType pt = (ParameterizedType) field @@ -73,9 +78,6 @@ public class ExportBase { pojoClass)); excelEntity.setList(list); excelParams.add(excelEntity); - } else if (POIPublicUtil.isJavaClass(field)) { - excelParams.add(createExcelExportEntity(field, targetId, - pojoClass, getMethods)); } else { List newMethods = new ArrayList(); if (getMethods != null) { @@ -108,7 +110,12 @@ public class ExportBase { throws Exception { Excel excel = field.getAnnotation(Excel.class); ExcelExportEntity excelEntity = new ExcelExportEntity(); - excelEntity.setType(excel.type()); + try { + excelEntity.setType(excel.type()); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } getExcelField(targetId, field, excelEntity, excel, pojoClass); if (getMethods != null) { List newMethods = new ArrayList(); @@ -203,8 +210,10 @@ public class ExportBase { String fieldname = field.getName(); excelEntity.setMethod(POIPublicUtil.getMethod(fieldname, pojoClass)); } + /** * 根据注解获取行高 + * * @param excelParams * @return */ @@ -223,7 +232,6 @@ public class ExportBase { } return (short) (maxHeight * 50); } - /** * 对字段根据用户设置排序 @@ -236,7 +244,7 @@ public class ExportBase { } } } - + /** * 获取填如这个cell的值,提供一些附加功能 * @@ -247,9 +255,14 @@ public class ExportBase { */ public Object getCellValue(ExcelExportEntity entity, Object obj) throws Exception { - Object value = entity.getMethods() != null ? getFieldBySomeMethod( - entity.getMethods(), obj) : entity.getMethod().invoke(obj, - new Object[] {}); + Object value; + if (obj instanceof Map) { + return ((Map) obj).get(entity.getKey()); + } else { + value = entity.getMethods() != null ? getFieldBySomeMethod( + entity.getMethods(), obj) : entity.getMethod().invoke(obj, + new Object[] {}); + } if (needHanlderList != null && needHanlderList.contains(entity.getName())) { value = dataHanlder.exportHandler(obj, entity.getName(), value); @@ -290,7 +303,7 @@ public class ExportBase { } return value; } - + /** * 多个反射获取值 * diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java index dbbd185..e23e39f 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/export/template/ExcelExportOfTemplateUtil.java @@ -32,6 +32,7 @@ import org.jeecgframework.poi.util.POIPublicUtil; * @version 1.0 */ public final class ExcelExportOfTemplateUtil extends ExcelExportBase { + public Workbook createExcleByTemplate(TemplateExportParams params, Class pojoClass, Collection dataSet, Map map) { @@ -44,19 +45,13 @@ public final class ExcelExportOfTemplateUtil extends ExcelExportBase { // step 2. 判断模板的Excel类型,解析模板 try { wb = getCloneWorkBook(params); - // step 3. 删除其他的sheet - for (int i = wb.getNumberOfSheets() - 1; i >= 0; i--) { - if (i != params.getSheetNum()) { - wb.removeSheetAt(i); - } - } if (StringUtils.isNotEmpty(params.getSheetName())) { wb.setSheetName(0, params.getSheetName()); } - // step 4. 解析模板 + // step 3. 解析模板 parseTemplate(wb.getSheetAt(0), map); if (dataSet != null) { - // step 5. 正常的数据填充 + // step 4. 正常的数据填充 dataHanlder = params.getDataHanlder(); if (dataHanlder != null) { needHanlderList = Arrays.asList(dataHanlder diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/CellValueServer.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/CellValueServer.java index 96da100..c512acb 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/CellValueServer.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/CellValueServer.java @@ -141,6 +141,9 @@ public class CellValueServer { */ private Object getCellValue(String xclass, Cell cell, ExcelImportEntity entity) { + if(cell == null){ + return ""; + } Object result = null; // 日期格式比较特殊,和cell格式不一致 if (xclass.equals("class java.util.Date")) { diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java index 0d745a1..3755902 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/imports/ExcelImportServer.java @@ -94,6 +94,9 @@ public class ExcelImportServer { } Map pictures; for (int i = 0; i < 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); @@ -101,8 +104,14 @@ public class ExcelImportServer { 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); @@ -141,8 +150,7 @@ public class ExcelImportServer { if (params.getSaveUrl().equals("upload/excelUpload")) { url = pojoClass.getName().split("\\.")[pojoClass.getName().split( "\\.").length - 1]; - return params.getSaveUrl() + "/" - + url.substring(0, url.lastIndexOf("Entity")); + return params.getSaveUrl() + "/" + url; } return params.getSaveUrl(); } diff --git a/easypoi-test/.classpath b/easypoi-test/.classpath index f67a1d3..f32149e 100644 --- a/easypoi-test/.classpath +++ b/easypoi-test/.classpath @@ -11,19 +11,19 @@ - + + - + - + - diff --git a/easypoi-test/pom.xml b/easypoi-test/pom.xml index 77aa8d9..86c94e4 100644 --- a/easypoi-test/pom.xml +++ b/easypoi-test/pom.xml @@ -4,7 +4,7 @@ org.jeecgframework easypoi - 2.0.2 + 2.0.6-SNAPSHOT easypoi-test diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClient.java b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClient.java new file mode 100644 index 0000000..563b6e2 --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClient.java @@ -0,0 +1,146 @@ +package org.jeecgframework.poi.entity; + +import java.util.Date; + + +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecgframework.poi.excel.annotation.ExcelEntity; + +/** + * @Title: Entity + * @Description: 通讯录 + * @author JueYue + * @date 2014-09-22 16:03:32 + * @version V1.0 + * + */ +@SuppressWarnings("serial") +public class MsgClient implements java.io.Serializable { + /** id */ + private java.lang.String id; + // 电话号码(主键) + @Excel(name = "电话号码") + private String clientPhone = null; + // 客户姓名 + @Excel(name = "姓名") + private String clientName = null; + // 所属分组 + @ExcelEntity + private MsgClientGroup group = null; + // 备注 + @Excel(name = "备注") + private String remark = null; + // 生日 + @Excel(name = "出生日期") + private Date birthday = null; + // 创建人 + private String createBy = null; + + /** + * 方法: 取得java.lang.String + * + * @return: java.lang.String id + */ + + public java.lang.String getId() { + return this.id; + } + + /** + * 方法: 设置java.lang.String + * + * @param: java.lang.String id + */ + public void setId(java.lang.String id) { + this.id = id; + } + + /** + * 方法: 取得java.lang.String + * + * @return: java.lang.String 电话号码 + */ + public java.lang.String getClientPhone() { + return this.clientPhone; + } + + /** + * 方法: 设置java.lang.String + * + * @param: java.lang.String 电话号码 + */ + public void setClientPhone(java.lang.String clientPhone) { + this.clientPhone = clientPhone; + } + + public MsgClientGroup getGroup() { + return group; + } + + public void setGroup(MsgClientGroup group) { + this.group = group; + } + + /** + * 方法: 取得java.lang.String + * + * @return: java.lang.String 客户姓名 + */ + public java.lang.String getClientName() { + return this.clientName; + } + + /** + * 方法: 设置java.lang.String + * + * @param: java.lang.String 客户姓名 + */ + public void setClientName(java.lang.String clientName) { + this.clientName = clientName; + } + + /** + * 方法: 取得java.lang.String + * + * @return: java.lang.String 备注 + */ + public java.lang.String getRemark() { + return this.remark; + } + + /** + * 方法: 设置java.lang.String + * + * @param remark + * + * @param: java.lang.String 备注 + */ + public void setRemark(java.lang.String remark) { + this.remark = remark; + } + + /** + * 方法: 取得java.util.Date + * + * @return: java.util.Date 生日 + */ + public java.util.Date getBirthday() { + return this.birthday; + } + + /** + * 方法: 设置java.util.Date + * + * @param: java.util.Date 生日 + */ + public void setBirthday(java.util.Date birthday) { + this.birthday = birthday; + } + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } +} diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClientGroup.java b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClientGroup.java new file mode 100644 index 0000000..21d8a35 --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/MsgClientGroup.java @@ -0,0 +1,57 @@ +package org.jeecgframework.poi.entity; + +import java.io.Serializable; +import java.util.List; + + +import org.jeecgframework.poi.excel.annotation.Excel; + + +/** + * 客户分组表 + * + * @author yjl + * + */ +public class MsgClientGroup implements Serializable{ + + + /** + * + */ + private static final long serialVersionUID = 6946265640897464878L; + + // 组名 + @Excel(name ="分组") + private String groupName = null; + /** + * 创建人 + */ + private String createBy; + + // 一个组下 可能存在N多客户 + //private List clients = null; + + public String getGroupName() { + return groupName; + } + public void setGroupName(String groupName) { + this.groupName = groupName; + } + + /*@org.codehaus.jackson.annotate.JsonIgnore + @OneToMany(cascade = CascadeType.REMOVE,fetch = FetchType.LAZY,mappedBy = "group") + public List getClients() { + return clients; + } + + public void setClients(List clients) { + this.clients = clients; + }*/ + public String getCreateBy() { + return createBy; + } + public void setCreateBy(String createBy) { + this.createBy = createBy; + } +} diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java index 8a6cf76..35a49a8 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java @@ -4,9 +4,11 @@ import static org.junit.Assert.*; import java.io.File; import java.util.Collection; +import java.util.Date; import java.util.List; import org.jeecgframework.poi.entity.CourseEntity; +import org.jeecgframework.poi.entity.MsgClient; import org.jeecgframework.poi.entity.StudentEntity; import org.jeecgframework.poi.excel.entity.ImportParams; import org.junit.Test; @@ -18,11 +20,13 @@ public class ExcelImportUtilTest { ImportParams params = new ImportParams(); params.setTitleRows(2); params.setHeadRows(2); + //params.setSheetNum(9); + params.setNeedSave(true); + long start = new Date().getTime(); List list = ExcelImportUtil.importExcel(new File( "d:/tt.xls"), CourseEntity.class, params); - for (int i = 0; i < list.size(); i++) { - System.out.println(list.get(i).getName()); - } + System.out.println(list.size() + "-----" + + (new Date().getTime() - start)); } } diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/doc/exportTemp.xls b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/doc/exportTemp.xls new file mode 100644 index 0000000..9b57ebd Binary files /dev/null and b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/doc/exportTemp.xls differ diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportForMap.java b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportForMap.java new file mode 100644 index 0000000..43af4b3 --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportForMap.java @@ -0,0 +1,51 @@ +package org.jeecgframework.poi.excel.test; + +import static org.junit.Assert.*; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.jeecgframework.poi.entity.TeacherEntity; +import org.jeecgframework.poi.excel.ExcelExportUtil; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.Test; + +public class ExcelExportForMap { + + @Test + public void test() { + try { + List entity = new ArrayList(); + entity.add(new ExcelExportEntity("姓名", "name")); + entity.add(new ExcelExportEntity("性别", "sex")); + + List> list = new ArrayList>(); + Map map; + for (int i = 0; i < 10; i++) { + map = new HashMap(); + map.put("name", "1" + i); + map.put("sex", "2" + i); + list.add(map); + } + + HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams( + "测试", "测试"), entity, list); + FileOutputStream fos = new FileOutputStream("d:/tt.xls"); + workbook.write(fos); + fos.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportTemplateTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportTemplateTest.java new file mode 100644 index 0000000..deb0199 --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportTemplateTest.java @@ -0,0 +1,108 @@ +package org.jeecgframework.poi.excel.test; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.poi.ss.usermodel.Workbook; +import org.jeecgframework.poi.entity.CourseEntity; +import org.jeecgframework.poi.entity.StudentEntity; +import org.jeecgframework.poi.entity.TeacherEntity; +import org.jeecgframework.poi.excel.ExcelExportUtil; +import org.jeecgframework.poi.excel.entity.TemplateExportParams; +import org.junit.Before; +import org.junit.Test; + +public class ExcelExportTemplateTest { + + List list = new ArrayList(); + CourseEntity courseEntity; + + @Before + public void testBefore() { + courseEntity = new CourseEntity(); + courseEntity.setId("1131"); + courseEntity.setName("小白"); + + TeacherEntity teacherEntity = new TeacherEntity(); + teacherEntity.setId("12131231"); + teacherEntity.setName("你们"); + courseEntity.setTeacher(teacherEntity); + + teacherEntity = new TeacherEntity(); + teacherEntity.setId("121312314312421131"); + teacherEntity.setName("老王"); + courseEntity.setShuxueteacher(teacherEntity); + + StudentEntity studentEntity = new StudentEntity(); + studentEntity.setId("11231"); + studentEntity.setName("撒旦法司法局"); + studentEntity.setBirthday(new Date()); + studentEntity.setSex(1); + List studentList = new ArrayList(); + studentList.add(studentEntity); + studentList.add(studentEntity); + courseEntity.setStudents(studentList); + + for (int i = 0; i < 3; i++) { + list.add(courseEntity); + } + } + + //@Test + public void one () throws Exception{ + TemplateExportParams params = new TemplateExportParams(); + params.setHeadingRows(2); + params.setHeadingStartRow(2); + Map map = new HashMap(); + map.put("year", "2013"); + map.put("sunCourses", list.size()); + Map obj = new HashMap(); + map.put("obj", obj); + obj.put("name", list.size()); + params.setTemplateUrl("org/jeecgframework/poi/excel/doc/exportTemp.xls"); + Workbook book = ExcelExportUtil.exportExcel(params, CourseEntity.class, list, + map); + File savefile = new File("d:/"); + if (!savefile.exists()) { + savefile.mkdirs(); + } + FileOutputStream fos = new FileOutputStream("d:/exportTemp.xls"); + book.write(fos); + fos.close(); + + } + @Test + public void two () throws Exception{ + TemplateExportParams params = new TemplateExportParams(); + Map map = new HashMap(); + map.put("month", 10); + Map temp; + for(int i = 1;i<8;i++){ + temp = new HashMap(); + temp.put("per", i*10); + temp.put("mon", i*1000); + temp.put("summon", i*10000); + map.put("i"+i, temp); + } + params.setTemplateUrl("org/jeecgframework/poi/excel/doc/exportTemp.xls"); + params.setSheetNum(1); + Workbook book = ExcelExportUtil.exportExcel(params, CourseEntity.class, list, + map); + File savefile = new File("d:/"); + if (!savefile.exists()) { + savefile.mkdirs(); + } + FileOutputStream fos = new FileOutputStream("d:/exportTemp2.xls"); + book.write(fos); + fos.close(); + + } + + +} diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilIdTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilIdTest.java index c44b276..f1c91c4 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilIdTest.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilIdTest.java @@ -59,7 +59,6 @@ public class ExcelExportUtilIdTest { telist.add(teacherEntity); } } - /** * 单行表头导出测试 @@ -68,8 +67,10 @@ public class ExcelExportUtilIdTest { */ @Test public void testExportExcel() throws Exception { - HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams( - "2412312", "测试", "测试"), TeacherEntity.class, telist); + ExportParams params = new ExportParams("2412312", "测试", "测试"); + params.setAddIndex(true); + HSSFWorkbook workbook = ExcelExportUtil.exportExcel(params, + TeacherEntity.class, telist); FileOutputStream fos = new FileOutputStream("d:/tt.xls"); workbook.write(fos); fos.close(); diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilTest.java index 17a99ee..094b9a8 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilTest.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/test/ExcelExportUtilTest.java @@ -62,7 +62,7 @@ public class ExcelExportUtilTest { * * @throws Exception */ - @Test + //@Test public void testExportExcel() throws Exception { Date start = new Date(); HSSFWorkbook workbook = ExcelExportUtil.exportExcel(new ExportParams( @@ -123,9 +123,10 @@ public class ExcelExportUtilTest { * * @throws Exception */ - //@Test + @Test public void oneHundredThousandRowTest() throws Exception { - for (int i = 0; i < 250000; i++) { + + for (int i = 0; i < 250; i++) { list.add(courseEntity); } Date start = new Date(); @@ -139,6 +140,14 @@ public class ExcelExportUtilTest { FileOutputStream fos = new FileOutputStream("d:/tt.xls"); workbook.write(fos); fos.close(); + savefile = new File("d:/1"); + if (!savefile.exists()) { + savefile.setWritable(true, false); + savefile.mkdirs(); + } + fos = new FileOutputStream("d:/1/tt3.xls"); + workbook.write(fos); + fos.close(); } } diff --git a/easypoi-test/src/main/resources/log4j.properties b/easypoi-test/src/main/resources/log4j.properties new file mode 100644 index 0000000..d15e8b4 --- /dev/null +++ b/easypoi-test/src/main/resources/log4j.properties @@ -0,0 +1,11 @@ +log4j.rootLogger=debug,A1,R +log4j.appender.A1=org.apache.log4j.ConsoleAppender +log4j.appender.A1.Target=System.out +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=[%c]%m%n + +log4j.appender.R=org.apache.log4j.RollingFileAppender +log4j.appender.R.File=/home/logs/easypoi.info +log4j.appender.R.MaxFileSize=10MB +log4j.appender.R.layout=org.apache.log4j.PatternLayout +log4j.appender.R.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n \ No newline at end of file diff --git a/easypoi-web/.classpath b/easypoi-web/.classpath index f67a1d3..f32149e 100644 --- a/easypoi-web/.classpath +++ b/easypoi-web/.classpath @@ -11,19 +11,19 @@ - + + - + - + - diff --git a/easypoi-web/.project b/easypoi-web/.project index 2197815..a06e826 100644 --- a/easypoi-web/.project +++ b/easypoi-web/.project @@ -15,8 +15,14 @@ + + org.springframework.ide.eclipse.core.springbuilder + + + + org.springframework.ide.eclipse.core.springnature org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature diff --git a/easypoi-web/pom.xml b/easypoi-web/pom.xml index 2e1cea2..529dca1 100644 --- a/easypoi-web/pom.xml +++ b/easypoi-web/pom.xml @@ -4,10 +4,9 @@ org.jeecgframework easypoi - 2.0.2 + 2.0.6-SNAPSHOT easypoi-web - diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/MapExcelConstants.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/MapExcelConstants.java new file mode 100644 index 0000000..6d67a29 --- /dev/null +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/entity/vo/MapExcelConstants.java @@ -0,0 +1,22 @@ +package org.jeecgframework.poi.excel.entity.vo; + +/** + * 正常导出Excel + * @Author JueYue on 14-3-8. + * 静态常量 + */ +public interface MapExcelConstants extends BasePOIConstants { + /** + * 单Sheet导出 + */ + public final static String JEECG_MAP_EXCEL_VIEW = "jeecgMapExcelView"; + /** + * Entity List + */ + public final static String ENTITY_LIST = "data"; + /** + * 数据列表 + */ + public final static String MAP_LIST = "mapList"; + +} diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java new file mode 100644 index 0000000..04114cb --- /dev/null +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgMapExcelView.java @@ -0,0 +1,56 @@ +package org.jeecgframework.poi.excel.view; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity; +import org.jeecgframework.poi.excel.entity.vo.MapExcelConstants; +import org.jeecgframework.poi.excel.export.ExcelExportServer; +import org.springframework.web.servlet.view.document.AbstractExcelView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * Map 对象接口 + * + * @author JueYue + * @date 2014年11月25日 下午3:26:32 + */ +@SuppressWarnings("unchecked") +public class JeecgMapExcelView extends AbstractExcelView { + + @Override + protected void buildExcelDocument(Map model, + HSSFWorkbook hssfWorkbook, HttpServletRequest httpServletRequest, + HttpServletResponse httpServletResponse) throws Exception { + String codedFileName = "临时文件.xls"; + if (model.containsKey(MapExcelConstants.FILE_NAME)) { + codedFileName = (String) model.get(MapExcelConstants.FILE_NAME) + + ".xls"; + } + if (isIE(httpServletRequest)) { + codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8"); + } else { + codedFileName = new String(codedFileName.getBytes("UTF-8"), + "ISO-8859-1"); + } + httpServletResponse.setHeader("content-disposition", + "attachment;filename=" + codedFileName); + new ExcelExportServer().createSheetForMap(hssfWorkbook, + (ExportParams) model.get(MapExcelConstants.PARAMS), + (List) model + .get(MapExcelConstants.ENTITY_LIST), + (Collection>) model + .get(MapExcelConstants.MAP_LIST)); + } + + public boolean isIE(HttpServletRequest request) { + return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request + .getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true + : false; + } +} diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java index 07a7674..0d2eef7 100644 --- a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgSingleExcelView.java @@ -28,17 +28,24 @@ public class JeecgSingleExcelView extends AbstractExcelView { codedFileName = (String) model.get(NormalExcelConstants.FILE_NAME) + ".xls"; } + if (isIE(httpServletRequest)) { + codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8"); + } else { + codedFileName = new String(codedFileName.getBytes("UTF-8"), + "ISO-8859-1"); + } httpServletResponse.setHeader("content-disposition", - "attachment;filename=" - + new String(codedFileName.getBytes(), "iso8859-1")); + "attachment;filename="+codedFileName); if (model.containsKey(NormalExcelConstants.MAP_LIST)) { List> list = (List>) model .get(NormalExcelConstants.MAP_LIST); for (Map map : list) { - new ExcelExportServer().createSheet(hssfWorkbook, - (ExportParams) map.get(NormalExcelConstants.PARAMS), - (Class) map.get(NormalExcelConstants.CLASS), - (Collection) map.get(NormalExcelConstants.DATA_LIST)); + new ExcelExportServer() + .createSheet(hssfWorkbook, (ExportParams) map + .get(NormalExcelConstants.PARAMS), + (Class) map.get(NormalExcelConstants.CLASS), + (Collection) map + .get(NormalExcelConstants.DATA_LIST)); } } else { new ExcelExportServer().createSheet(hssfWorkbook, @@ -47,4 +54,10 @@ public class JeecgSingleExcelView extends AbstractExcelView { (Collection) model.get(NormalExcelConstants.DATA_LIST)); } } + + public boolean isIE(HttpServletRequest request) { + return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request + .getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true + : false; + } } diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java index 6729ae3..12957b1 100644 --- a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateExcelView.java @@ -38,8 +38,14 @@ public class JeecgTemplateExcelView extends AbstractView { codedFileName = (String) model.get(NormalExcelConstants.FILE_NAME) + ".xls"; } - response.setHeader("content-disposition", "attachment;filename=" - + new String(codedFileName.getBytes(), "iso8859-1")); + if (isIE(request)) { + codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8"); + } else { + codedFileName = new String(codedFileName.getBytes("UTF-8"), + "ISO-8859-1"); + } + response.setHeader("content-disposition", + "attachment;filename="+codedFileName); Workbook workbook = ExcelExportUtil.exportExcel( (TemplateExportParams)model.get(TemplateExcelConstants.PARAMS), (Class) model.get(TemplateExcelConstants.CLASS), @@ -49,4 +55,10 @@ public class JeecgTemplateExcelView extends AbstractView { workbook.write(out); out.flush(); } + + public boolean isIE(HttpServletRequest request) { + return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request + .getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true + : false; + } } diff --git a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java index 694adf8..3e449eb 100644 --- a/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java +++ b/easypoi-web/src/main/java/org/jeecgframework/poi/excel/view/JeecgTemplateWordView.java @@ -35,12 +35,26 @@ public class JeecgTemplateWordView extends AbstractView { codedFileName = (String) model.get(TemplateWordConstants.FILE_NAME) + ".docx"; } + if (isIE(request)) { + codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8"); + } else { + codedFileName = new String(codedFileName.getBytes("UTF-8"), + "ISO-8859-1"); + } response.setHeader("content-disposition", "attachment;filename=" - + new String(codedFileName.getBytes(), "iso8859-1")); - XWPFDocument document = WordExportUtil.exportWord07((String)model.get(TemplateWordConstants.URL), - (Map)model.get(TemplateWordConstants.MAP_DATA)); + + codedFileName); + XWPFDocument document = WordExportUtil + .exportWord07((String) model.get(TemplateWordConstants.URL), + (Map) model + .get(TemplateWordConstants.MAP_DATA)); ServletOutputStream out = response.getOutputStream(); document.write(out); out.flush(); } + + public boolean isIE(HttpServletRequest request) { + return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request + .getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true + : false; + } } diff --git a/package.bat b/package.bat index 84e3f30..04a1285 100644 --- a/package.bat +++ b/package.bat @@ -1 +1 @@ -cmd /k mvn package \ No newline at end of file +cmd /k mvn package -DskipTest \ No newline at end of file diff --git a/pom.xml b/pom.xml index 6146c2f..10ae36b 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.jeecgframework easypoi - 2.0.2 + 2.0.6-SNAPSHOT pom easypoi @@ -11,18 +11,19 @@ easypoi-web easypoi-test - + www.jeecg.org office 工具类 基于 poi - + JueYue qrb.jueyue@gmail.com - + + 2.0.6-SNAPSHOT 3.9 3.9 3.9 @@ -109,7 +110,7 @@ 2.5 provided - + junit @@ -117,16 +118,17 @@ ${junit.version} test - + org.jeecgframework easypoi-base - 2.0.2 + ${sub.version} + postaop-pay-platform-release @@ -134,10 +136,15 @@ postaop-pay-platform-snapshot - http://192.168.0.99:8081/nexus/content/repositoriespostaop-common-snapshot/ + http://192.168.0.99:8081/nexus/content/repositories/postaop-common-snapshot/ + + scm:svn:https://192.168.0.99:8443/svn/postaop-platform/qdcrm/trunk/ + scm:svn:https://192.168.0.99:8443/svn/postaop-platform/qdcrm/trunk/ + +