@@ -97,6 +97,12 @@ | |||||
<artifactId>validation-api</artifactId> | <artifactId>validation-api</artifactId> | ||||
</dependency> | </dependency> | ||||
<dependency> | |||||
<groupId>org.projectlombok</groupId> | |||||
<artifactId>lombok</artifactId> | |||||
<scope>provided</scope> | |||||
</dependency> | |||||
<dependency> | <dependency> | ||||
<groupId>cn.afterturn</groupId> | <groupId>cn.afterturn</groupId> | ||||
<artifactId>easypoi-annotation</artifactId> | <artifactId>easypoi-annotation</artifactId> | ||||
@@ -18,13 +18,14 @@ package cn.afterturn.easypoi.excel.entity; | |||||
import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; | import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; | ||||
import cn.afterturn.easypoi.handler.inter.IExcelDictHandler; | import cn.afterturn.easypoi.handler.inter.IExcelDictHandler; | ||||
import cn.afterturn.easypoi.handler.inter.IExcelI18nHandler; | import cn.afterturn.easypoi.handler.inter.IExcelI18nHandler; | ||||
import lombok.Data; | |||||
/** | /** | ||||
* 基础参数 | * 基础参数 | ||||
* @author JueYue | * @author JueYue | ||||
* 2014年6月20日 下午1:56:52 | * 2014年6月20日 下午1:56:52 | ||||
*/ | */ | ||||
@SuppressWarnings("rawtypes") | |||||
@Data | |||||
public class ExcelBaseParams { | public class ExcelBaseParams { | ||||
/** | /** | ||||
@@ -41,27 +42,4 @@ public class ExcelBaseParams { | |||||
*/ | */ | ||||
private IExcelI18nHandler i18nHandler; | private IExcelI18nHandler i18nHandler; | ||||
public IExcelDataHandler getDataHandler() { | |||||
return dataHandler; | |||||
} | |||||
public void setDataHandler(IExcelDataHandler dataHandler) { | |||||
this.dataHandler = dataHandler; | |||||
} | |||||
public IExcelDictHandler getDictHandler() { | |||||
return dictHandler; | |||||
} | |||||
public void setDictHandler(IExcelDictHandler dictHandler) { | |||||
this.dictHandler = dictHandler; | |||||
} | |||||
public IExcelI18nHandler getI18nHandler() { | |||||
return i18nHandler; | |||||
} | |||||
public void setI18nHandler(IExcelI18nHandler i18nHandler) { | |||||
this.i18nHandler = i18nHandler; | |||||
} | |||||
} | } |
@@ -1,5 +1,6 @@ | |||||
package cn.afterturn.easypoi.excel.entity; | package cn.afterturn.easypoi.excel.entity; | ||||
import lombok.Data; | |||||
import org.apache.poi.ss.usermodel.Workbook; | import org.apache.poi.ss.usermodel.Workbook; | ||||
/** | /** | ||||
@@ -7,6 +8,7 @@ import org.apache.poi.ss.usermodel.Workbook; | |||||
* @author JueYue | * @author JueYue | ||||
* 2015年8月7日 下午1:45:46 | * 2015年8月7日 下午1:45:46 | ||||
*/ | */ | ||||
@Data | |||||
public class ExcelToHtmlParams { | public class ExcelToHtmlParams { | ||||
/** | /** | ||||
* Excel | * Excel | ||||
@@ -69,54 +71,6 @@ public class ExcelToHtmlParams { | |||||
this.path = path; | this.path = path; | ||||
} | } | ||||
public Workbook getWb() { | |||||
return wb; | |||||
} | |||||
public void setWb(Workbook wb) { | |||||
this.wb = wb; | |||||
} | |||||
public boolean isCompleteHTML() { | |||||
return completeHTML; | |||||
} | |||||
public void setCompleteHTML(boolean completeHTML) { | |||||
this.completeHTML = completeHTML; | |||||
} | |||||
public int getSheetNum() { | |||||
return sheetNum; | |||||
} | |||||
public void setSheetNum(int sheetNum) { | |||||
this.sheetNum = sheetNum; | |||||
} | |||||
public String getPath() { | |||||
return path; | |||||
} | |||||
public void setPath(String path) { | |||||
this.path = path; | |||||
} | |||||
public boolean isShowRowNum() { | |||||
return showRowNum; | |||||
} | |||||
public void setShowRowNum(boolean showRowNum) { | |||||
this.showRowNum = showRowNum; | |||||
} | |||||
public boolean isShowColumnHead() { | |||||
return showColumnHead; | |||||
} | |||||
public void setShowColumnHead(boolean showColumnHead) { | |||||
this.showColumnHead = showColumnHead; | |||||
} | |||||
@Override | @Override | ||||
public boolean equals(Object obj) { | public boolean equals(Object obj) { | ||||
if (obj instanceof ExcelToHtmlParams) { | if (obj instanceof ExcelToHtmlParams) { | ||||
@@ -7,29 +7,15 @@ import java.util.List; | |||||
import java.util.Map; | import java.util.Map; | ||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; | import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; | ||||
import lombok.Data; | |||||
/** | /** | ||||
* @author xfworld | * @author xfworld | ||||
* @since 2016-5-26 | * @since 2016-5-26 | ||||
* @version 1.0 | * @version 1.0 | ||||
*/ | */ | ||||
@Data | |||||
public class ExportExcelItem { | public class ExportExcelItem { | ||||
private List<ExcelExportEntity> entityList; | private List<ExcelExportEntity> entityList; | ||||
private List<Map<String, Object>> resultList; | private List<Map<String, Object>> resultList; | ||||
public List<ExcelExportEntity> getEntityList() { | |||||
return this.entityList; | |||||
} | |||||
public void setEntityList(List<ExcelExportEntity> entityList) { | |||||
this.entityList = entityList; | |||||
} | |||||
public List<Map<String, Object>> getResultList() { | |||||
return this.resultList; | |||||
} | |||||
public void setResultList(List<Map<String, Object>> resultList) { | |||||
this.resultList = resultList; | |||||
} | |||||
} | } |
@@ -17,6 +17,7 @@ package cn.afterturn.easypoi.excel.entity; | |||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; | import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; | ||||
import cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerDefaultImpl; | import cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerDefaultImpl; | ||||
import lombok.Data; | |||||
import org.apache.poi.hssf.util.HSSFColor; | import org.apache.poi.hssf.util.HSSFColor; | ||||
/** | /** | ||||
@@ -25,6 +26,7 @@ import org.apache.poi.hssf.util.HSSFColor; | |||||
* @author JueYue | * @author JueYue | ||||
* @version 1.0 2013年8月24日 | * @version 1.0 2013年8月24日 | ||||
*/ | */ | ||||
@Data | |||||
public class ExportParams extends ExcelBaseParams { | public class ExportParams extends ExcelBaseParams { | ||||
/** | /** | ||||
@@ -142,171 +144,4 @@ public class ExportParams extends ExcelBaseParams { | |||||
this.sheetName = sheetName; | this.sheetName = sheetName; | ||||
} | } | ||||
public short getColor() { | |||||
return color; | |||||
} | |||||
public String[] getExclusions() { | |||||
return exclusions; | |||||
} | |||||
public short getHeaderColor() { | |||||
return headerColor; | |||||
} | |||||
public String getSecondTitle() { | |||||
return secondTitle; | |||||
} | |||||
public short getSecondTitleHeight() { | |||||
return (short) (secondTitleHeight * 50); | |||||
} | |||||
public String getSheetName() { | |||||
return sheetName; | |||||
} | |||||
public String getTitle() { | |||||
return title; | |||||
} | |||||
public short getTitleHeight() { | |||||
return (short) (titleHeight * 50); | |||||
} | |||||
public boolean isAddIndex() { | |||||
return addIndex; | |||||
} | |||||
public void setAddIndex(boolean addIndex) { | |||||
this.addIndex = addIndex; | |||||
} | |||||
public void setColor(short color) { | |||||
this.color = color; | |||||
} | |||||
public void setExclusions(String[] exclusions) { | |||||
this.exclusions = exclusions; | |||||
} | |||||
public void setHeaderColor(short headerColor) { | |||||
this.headerColor = headerColor; | |||||
} | |||||
public void setSecondTitle(String secondTitle) { | |||||
this.secondTitle = secondTitle; | |||||
} | |||||
public void setSecondTitleHeight(short secondTitleHeight) { | |||||
this.secondTitleHeight = secondTitleHeight; | |||||
} | |||||
public void setSheetName(String sheetName) { | |||||
this.sheetName = sheetName; | |||||
} | |||||
public void setTitle(String title) { | |||||
this.title = title; | |||||
} | |||||
public void setTitleHeight(short titleHeight) { | |||||
this.titleHeight = titleHeight; | |||||
} | |||||
public ExcelType getType() { | |||||
return type; | |||||
} | |||||
public void setType(ExcelType type) { | |||||
this.type = type; | |||||
} | |||||
public String getIndexName() { | |||||
return indexName; | |||||
} | |||||
public void setIndexName(String indexName) { | |||||
this.indexName = indexName; | |||||
} | |||||
public Class<?> getStyle() { | |||||
return style; | |||||
} | |||||
public void setStyle(Class<?> style) { | |||||
this.style = style; | |||||
} | |||||
public int getFreezeCol() { | |||||
return freezeCol; | |||||
} | |||||
public void setFreezeCol(int freezeCol) { | |||||
this.freezeCol = freezeCol; | |||||
} | |||||
public boolean isCreateHeadRows() { | |||||
return isCreateHeadRows; | |||||
} | |||||
public void setCreateHeadRows(boolean isCreateHeadRows) { | |||||
this.isCreateHeadRows = isCreateHeadRows; | |||||
} | |||||
public boolean isDynamicData() { | |||||
return isDynamicData; | |||||
} | |||||
public void setDynamicData(boolean isDynamicData) { | |||||
this.isDynamicData = isDynamicData; | |||||
} | |||||
public boolean isAppendGraph() { | |||||
return isAppendGraph; | |||||
} | |||||
public void setAppendGraph(boolean isAppendGraph) { | |||||
this.isAppendGraph = isAppendGraph; | |||||
} | |||||
public int getMaxNum() { | |||||
return maxNum; | |||||
} | |||||
public void setMaxNum(int maxNum) { | |||||
this.maxNum = maxNum; | |||||
} | |||||
public short getHeight() { | |||||
return height == -1 ? -1 : (short) (height * 50); | |||||
} | |||||
public void setHeight(short height) { | |||||
this.height = height; | |||||
} | |||||
public short getHeaderHeight() { | |||||
return (short) (titleHeight * 50); | |||||
} | |||||
public void setHeaderHeight(double headerHeight) { | |||||
this.headerHeight = headerHeight; | |||||
} | |||||
public boolean isFixedTitle() { | |||||
return isFixedTitle; | |||||
} | |||||
public void setFixedTitle(boolean fixedTitle) { | |||||
isFixedTitle = fixedTitle; | |||||
} | |||||
public boolean isReadonly() { | |||||
return readonly; | |||||
} | |||||
public void setReadonly(boolean readonly) { | |||||
this.readonly = readonly; | |||||
} | |||||
} | } |
@@ -16,6 +16,7 @@ | |||||
package cn.afterturn.easypoi.excel.entity; | package cn.afterturn.easypoi.excel.entity; | ||||
import cn.afterturn.easypoi.handler.inter.IExcelVerifyHandler; | import cn.afterturn.easypoi.handler.inter.IExcelVerifyHandler; | ||||
import lombok.Data; | |||||
/** | /** | ||||
* 导入参数设置 | * 导入参数设置 | ||||
@@ -24,7 +25,7 @@ import cn.afterturn.easypoi.handler.inter.IExcelVerifyHandler; | |||||
* 2013-9-24 | * 2013-9-24 | ||||
* @version 1.0 | * @version 1.0 | ||||
*/ | */ | ||||
@SuppressWarnings("rawtypes") | |||||
@Data | |||||
public class ImportParams extends ExcelBaseParams { | public class ImportParams extends ExcelBaseParams { | ||||
public static final String SAVE_URL = "/excel/upload/excelUpload"; | public static final String SAVE_URL = "/excel/upload/excelUpload"; | ||||
@@ -110,156 +111,4 @@ public class ImportParams extends ExcelBaseParams { | |||||
* 最小截取大小 | * 最小截取大小 | ||||
*/ | */ | ||||
private Integer critical = 1000; | private Integer critical = 1000; | ||||
public int getHeadRows() { | |||||
return headRows; | |||||
} | |||||
public String getSaveUrl() { | |||||
return saveUrl; | |||||
} | |||||
public int getSheetNum() { | |||||
return sheetNum; | |||||
} | |||||
public int getStartRows() { | |||||
return startRows; | |||||
} | |||||
public int getTitleRows() { | |||||
return titleRows; | |||||
} | |||||
public IExcelVerifyHandler getVerifyHandler() { | |||||
return verifyHandler; | |||||
} | |||||
public boolean isNeedSave() { | |||||
return needSave; | |||||
} | |||||
public void setHeadRows(int headRows) { | |||||
this.headRows = headRows; | |||||
} | |||||
public void setKeyIndex(Integer keyIndex) { | |||||
this.keyIndex = keyIndex; | |||||
} | |||||
public void setNeedSave(boolean needSave) { | |||||
this.needSave = needSave; | |||||
} | |||||
public void setSaveUrl(String saveUrl) { | |||||
this.saveUrl = saveUrl; | |||||
} | |||||
public void setSheetNum(int sheetNum) { | |||||
this.sheetNum = sheetNum; | |||||
} | |||||
public void setStartRows(int startRows) { | |||||
this.startRows = startRows; | |||||
} | |||||
public void setTitleRows(int titleRows) { | |||||
this.titleRows = titleRows; | |||||
} | |||||
public void setVerifyHandler(IExcelVerifyHandler verifyHandler) { | |||||
this.verifyHandler = verifyHandler; | |||||
} | |||||
public int getLastOfInvalidRow() { | |||||
return lastOfInvalidRow; | |||||
} | |||||
public void setLastOfInvalidRow(int lastOfInvalidRow) { | |||||
this.lastOfInvalidRow = lastOfInvalidRow; | |||||
} | |||||
public int getStartSheetIndex() { | |||||
return startSheetIndex; | |||||
} | |||||
public void setStartSheetIndex(int startSheetIndex) { | |||||
this.startSheetIndex = startSheetIndex; | |||||
} | |||||
public boolean isNeedVerify() { | |||||
return needVerify; | |||||
} | |||||
public void setNeedVerify(boolean needVerify) { | |||||
this.needVerify = needVerify; | |||||
} | |||||
public String[] getImportFields() { | |||||
return importFields; | |||||
} | |||||
public void setImportFields(String[] importFields) { | |||||
this.importFields = importFields; | |||||
} | |||||
public int getReadRows() { | |||||
return readRows; | |||||
} | |||||
public void setReadRows(int readRows) { | |||||
this.readRows = readRows; | |||||
} | |||||
public Integer getKeyIndex() { | |||||
return keyIndex; | |||||
} | |||||
public String getKeyMark() { | |||||
return keyMark; | |||||
} | |||||
public void setKeyMark(String keyMark) { | |||||
this.keyMark = keyMark; | |||||
} | |||||
public boolean isReadSingleCell() { | |||||
return readSingleCell; | |||||
} | |||||
public void setReadSingleCell(boolean readSingleCell) { | |||||
this.readSingleCell = readSingleCell; | |||||
} | |||||
public Class[] getVerifyGroup() { | |||||
return verifyGroup; | |||||
} | |||||
public void setVerifyGroup(Class[] verifyGroup) { | |||||
this.verifyGroup = verifyGroup; | |||||
} | |||||
public boolean isNeedCheckOrder() { | |||||
return needCheckOrder; | |||||
} | |||||
public void setNeedCheckOrder(boolean needCheckOrder) { | |||||
this.needCheckOrder = needCheckOrder; | |||||
} | |||||
public boolean isConcurrentTask() { | |||||
return concurrentTask; | |||||
} | |||||
public void setConcurrentTask(boolean concurrentTask) { | |||||
this.concurrentTask = concurrentTask; | |||||
} | |||||
public Integer getCritical() { | |||||
return critical; | |||||
} | |||||
public void setCritical(Integer critical) { | |||||
this.critical = critical; | |||||
} | |||||
} | } |
@@ -16,6 +16,7 @@ | |||||
package cn.afterturn.easypoi.excel.entity; | package cn.afterturn.easypoi.excel.entity; | ||||
import cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerDefaultImpl; | import cn.afterturn.easypoi.excel.export.styler.ExcelExportStylerDefaultImpl; | ||||
import lombok.Data; | |||||
import org.apache.poi.ss.usermodel.Workbook; | import org.apache.poi.ss.usermodel.Workbook; | ||||
import java.io.InputStream; | import java.io.InputStream; | ||||
@@ -27,6 +28,7 @@ import java.io.InputStream; | |||||
* 2013-10-17 | * 2013-10-17 | ||||
* @version 1.0 | * @version 1.0 | ||||
*/ | */ | ||||
@Data | |||||
public class TemplateExportParams extends ExcelBaseParams { | public class TemplateExportParams extends ExcelBaseParams { | ||||
/** | /** | ||||
@@ -128,107 +130,4 @@ public class TemplateExportParams extends ExcelBaseParams { | |||||
} | } | ||||
} | } | ||||
public int getHeadingRows() { | |||||
return headingRows; | |||||
} | |||||
public int getHeadingStartRow() { | |||||
return headingStartRow; | |||||
} | |||||
public String[] getSheetName() { | |||||
return sheetName; | |||||
} | |||||
public Integer[] getSheetNum() { | |||||
return sheetNum; | |||||
} | |||||
public String getTemplateUrl() { | |||||
return templateUrl; | |||||
} | |||||
public void setHeadingRows(int headingRows) { | |||||
this.headingRows = headingRows; | |||||
} | |||||
public void setHeadingStartRow(int headingStartRow) { | |||||
this.headingStartRow = headingStartRow; | |||||
} | |||||
public void setSheetName(String[] sheetName) { | |||||
this.sheetName = sheetName; | |||||
} | |||||
public void setSheetName(String sheetName) { | |||||
this.sheetName = new String[] { sheetName }; | |||||
} | |||||
public void setSheetNum(Integer[] sheetNum) { | |||||
this.sheetNum = sheetNum; | |||||
} | |||||
public void setSheetNum(Integer sheetNum) { | |||||
this.sheetNum = new Integer[] { sheetNum }; | |||||
} | |||||
public void setTemplateUrl(String templateUrl) { | |||||
this.templateUrl = templateUrl; | |||||
} | |||||
public Class<?> getStyle() { | |||||
return style; | |||||
} | |||||
public void setStyle(Class<?> style) { | |||||
this.style = style; | |||||
} | |||||
public int getDataSheetNum() { | |||||
return dataSheetNum; | |||||
} | |||||
public void setDataSheetNum(int dataSheetNum) { | |||||
this.dataSheetNum = dataSheetNum; | |||||
} | |||||
public boolean isScanAllsheet() { | |||||
return scanAllsheet; | |||||
} | |||||
public void setScanAllsheet(boolean scanAllsheet) { | |||||
this.scanAllsheet = scanAllsheet; | |||||
} | |||||
public String getTempParams() { | |||||
return tempParams; | |||||
} | |||||
public void setTempParams(String tempParams) { | |||||
this.tempParams = tempParams; | |||||
} | |||||
public boolean isColForEach() { | |||||
return colForEach; | |||||
} | |||||
public void setColForEach(boolean colForEach) { | |||||
this.colForEach = colForEach; | |||||
} | |||||
public void setTemplateWb(Workbook templateWb) { | |||||
this.templateWb = templateWb; | |||||
} | |||||
public Workbook getTemplateWb() { | |||||
return templateWb; | |||||
} | |||||
public boolean isReadonly() { | |||||
return readonly; | |||||
} | |||||
public void setReadonly(boolean readonly) { | |||||
this.readonly = readonly; | |||||
} | |||||
} | } |
@@ -1,10 +1,13 @@ | |||||
package cn.afterturn.easypoi.excel.entity; | package cn.afterturn.easypoi.excel.entity; | ||||
import lombok.Data; | |||||
/** | /** | ||||
* 统计对象 | * 统计对象 | ||||
* | * | ||||
* @author JueYue | * @author JueYue | ||||
*/ | */ | ||||
@Data | |||||
public class TemplateSumEntity { | public class TemplateSumEntity { | ||||
/** | /** | ||||
@@ -28,45 +31,4 @@ public class TemplateSumEntity { | |||||
*/ | */ | ||||
private double value; | private double value; | ||||
public String getCellValue() { | |||||
return cellValue; | |||||
} | |||||
public void setCellValue(String cellValue) { | |||||
this.cellValue = cellValue; | |||||
} | |||||
public String getSumKey() { | |||||
return sumKey; | |||||
} | |||||
public void setSumKey(String sumKey) { | |||||
this.sumKey = sumKey; | |||||
} | |||||
public int getCol() { | |||||
return col; | |||||
} | |||||
public void setCol(int col) { | |||||
this.col = col; | |||||
} | |||||
public int getRow() { | |||||
return row; | |||||
} | |||||
public void setRow(int row) { | |||||
this.row = row; | |||||
} | |||||
public double getValue() { | |||||
return value; | |||||
} | |||||
public void setValue(double value) { | |||||
this.value = value; | |||||
} | |||||
} | } |
@@ -19,12 +19,14 @@ import java.lang.reflect.Method; | |||||
import java.util.List; | import java.util.List; | ||||
import cn.afterturn.easypoi.excel.entity.vo.BaseEntityTypeConstants; | import cn.afterturn.easypoi.excel.entity.vo.BaseEntityTypeConstants; | ||||
import lombok.Data; | |||||
/** | /** | ||||
* Excel 导入导出基础对象类 | * Excel 导入导出基础对象类 | ||||
* @author JueYue | * @author JueYue | ||||
* 2014年6月20日 下午2:26:09 | * 2014年6月20日 下午2:26:09 | ||||
*/ | */ | ||||
@Data | |||||
public class ExcelBaseEntity { | public class ExcelBaseEntity { | ||||
/** | /** | ||||
* 对应name | * 对应name | ||||
@@ -73,104 +75,4 @@ public class ExcelBaseEntity { | |||||
private List<Method> methods; | private List<Method> methods; | ||||
public String getDatabaseFormat() { | |||||
return databaseFormat; | |||||
} | |||||
public String getFormat() { | |||||
return format; | |||||
} | |||||
public Method getMethod() { | |||||
return method; | |||||
} | |||||
public List<Method> getMethods() { | |||||
return methods; | |||||
} | |||||
public String getName() { | |||||
return name; | |||||
} | |||||
public String[] getReplace() { | |||||
return replace; | |||||
} | |||||
public int getType() { | |||||
return type; | |||||
} | |||||
public void setDatabaseFormat(String databaseFormat) { | |||||
this.databaseFormat = databaseFormat; | |||||
} | |||||
public void setFormat(String format) { | |||||
this.format = format; | |||||
} | |||||
public void setMethod(Method method) { | |||||
this.method = method; | |||||
} | |||||
public void setMethods(List<Method> methods) { | |||||
this.methods = methods; | |||||
} | |||||
public void setName(String name) { | |||||
this.name = name; | |||||
} | |||||
public void setReplace(String[] replace) { | |||||
this.replace = replace; | |||||
} | |||||
public void setType(int type) { | |||||
this.type = type; | |||||
} | |||||
public boolean isHyperlink() { | |||||
return hyperlink; | |||||
} | |||||
public String getGroupName() { | |||||
return groupName; | |||||
} | |||||
public void setGroupName(String groupName) { | |||||
this.groupName = groupName; | |||||
} | |||||
public void setHyperlink(boolean hyperlink) { | |||||
this.hyperlink = hyperlink; | |||||
} | |||||
public int getFixedIndex() { | |||||
return fixedIndex; | |||||
} | |||||
public void setFixedIndex(int fixedIndex) { | |||||
this.fixedIndex = fixedIndex; | |||||
} | |||||
public String getDict() { | |||||
return dict; | |||||
} | |||||
public void setDict(String dict) { | |||||
this.dict = dict; | |||||
} | |||||
public void setFixedIndex(Integer fixedIndex) { | |||||
this.fixedIndex = fixedIndex; | |||||
} | |||||
public String getTimezone() { | |||||
return timezone; | |||||
} | |||||
public void setTimezone(String timezone) { | |||||
this.timezone = timezone; | |||||
} | |||||
} | } |
@@ -15,6 +15,8 @@ | |||||
*/ | */ | ||||
package cn.afterturn.easypoi.excel.entity.params; | package cn.afterturn.easypoi.excel.entity.params; | ||||
import lombok.Data; | |||||
import java.util.Map; | import java.util.Map; | ||||
/** | /** | ||||
@@ -24,6 +26,7 @@ import java.util.Map; | |||||
* 2013-9-26 | * 2013-9-26 | ||||
* @version 1.0 | * @version 1.0 | ||||
*/ | */ | ||||
@Data | |||||
public class ExcelCollectionParams { | public class ExcelCollectionParams { | ||||
/** | /** | ||||
@@ -43,35 +46,4 @@ public class ExcelCollectionParams { | |||||
*/ | */ | ||||
private Map<String, ExcelImportEntity> excelParams; | private Map<String, ExcelImportEntity> excelParams; | ||||
public Map<String, ExcelImportEntity> getExcelParams() { | |||||
return excelParams; | |||||
} | |||||
public String getName() { | |||||
return name; | |||||
} | |||||
public Class<?> getType() { | |||||
return type; | |||||
} | |||||
public void setExcelParams(Map<String, ExcelImportEntity> excelParams) { | |||||
this.excelParams = excelParams; | |||||
} | |||||
public void setName(String name) { | |||||
this.name = name; | |||||
} | |||||
public void setType(Class<?> type) { | |||||
this.type = type; | |||||
} | |||||
public String getExcelName() { | |||||
return excelName; | |||||
} | |||||
public void setExcelName(String excelName) { | |||||
this.excelName = excelName; | |||||
} | |||||
} | } |
@@ -15,6 +15,8 @@ | |||||
*/ | */ | ||||
package cn.afterturn.easypoi.excel.entity.params; | package cn.afterturn.easypoi.excel.entity.params; | ||||
import lombok.Data; | |||||
import java.util.List; | import java.util.List; | ||||
/** | /** | ||||
@@ -23,6 +25,7 @@ import java.util.List; | |||||
* @author JueYue | * @author JueYue | ||||
* @version 1.0 2013年8月24日 | * @version 1.0 2013年8月24日 | ||||
*/ | */ | ||||
@Data | |||||
public class ExcelExportEntity extends ExcelBaseEntity implements Comparable<ExcelExportEntity> { | public class ExcelExportEntity extends ExcelBaseEntity implements Comparable<ExcelExportEntity> { | ||||
@@ -102,126 +105,6 @@ public class ExcelExportEntity extends ExcelBaseEntity implements Comparable<Exc | |||||
private List<ExcelExportEntity> list; | private List<ExcelExportEntity> list; | ||||
public int getExportImageType() { | |||||
return exportImageType; | |||||
} | |||||
public double getHeight() { | |||||
return height; | |||||
} | |||||
public Object getKey() { | |||||
return key; | |||||
} | |||||
public List<ExcelExportEntity> getList() { | |||||
return list; | |||||
} | |||||
public int[] getMergeRely() { | |||||
return mergeRely == null ? new int[0] : mergeRely; | |||||
} | |||||
public int getOrderNum() { | |||||
return orderNum; | |||||
} | |||||
public double getWidth() { | |||||
return width; | |||||
} | |||||
public boolean isMergeVertical() { | |||||
return mergeVertical; | |||||
} | |||||
public boolean isNeedMerge() { | |||||
return needMerge; | |||||
} | |||||
public boolean isWrap() { | |||||
return isWrap; | |||||
} | |||||
public void setExportImageType(int exportImageType) { | |||||
this.exportImageType = exportImageType; | |||||
} | |||||
public void setHeight(double height) { | |||||
this.height = height; | |||||
} | |||||
public void setKey(Object key) { | |||||
this.key = key; | |||||
} | |||||
public void setList(List<ExcelExportEntity> list) { | |||||
this.list = list; | |||||
} | |||||
public void setMergeRely(int[] mergeRely) { | |||||
this.mergeRely = mergeRely; | |||||
} | |||||
public void setMergeVertical(boolean mergeVertical) { | |||||
this.mergeVertical = mergeVertical; | |||||
} | |||||
public void setNeedMerge(boolean needMerge) { | |||||
this.needMerge = needMerge; | |||||
} | |||||
public void setOrderNum(int orderNum) { | |||||
this.orderNum = orderNum; | |||||
} | |||||
public void setWidth(double width) { | |||||
this.width = width; | |||||
} | |||||
public void setWrap(boolean isWrap) { | |||||
this.isWrap = isWrap; | |||||
} | |||||
public String getSuffix() { | |||||
return suffix; | |||||
} | |||||
public void setSuffix(String suffix) { | |||||
this.suffix = suffix; | |||||
} | |||||
public boolean isStatistics() { | |||||
return isStatistics; | |||||
} | |||||
public void setStatistics(boolean isStatistics) { | |||||
this.isStatistics = isStatistics; | |||||
} | |||||
public String getNumFormat() { | |||||
return numFormat; | |||||
} | |||||
public void setNumFormat(String numFormat) { | |||||
this.numFormat = numFormat; | |||||
} | |||||
public String getEnumExportField() { | |||||
return enumExportField; | |||||
} | |||||
public void setEnumExportField(String enumExportField) { | |||||
this.enumExportField = enumExportField; | |||||
} | |||||
public boolean isColumnHidden() { | |||||
return isColumnHidden; | |||||
} | |||||
public void setColumnHidden(boolean columnHidden) { | |||||
isColumnHidden = columnHidden; | |||||
} | |||||
@Override | @Override | ||||
public int compareTo(ExcelExportEntity prev) { | public int compareTo(ExcelExportEntity prev) { | ||||
return this.getOrderNum() - prev.getOrderNum(); | return this.getOrderNum() - prev.getOrderNum(); | ||||
@@ -1,5 +1,6 @@ | |||||
package cn.afterturn.easypoi.excel.entity.params; | package cn.afterturn.easypoi.excel.entity.params; | ||||
import lombok.Data; | |||||
import org.apache.poi.ss.usermodel.CellStyle; | import org.apache.poi.ss.usermodel.CellStyle; | ||||
import java.io.Serializable; | import java.io.Serializable; | ||||
@@ -11,6 +12,7 @@ import java.util.Stack; | |||||
* @author JueYue | * @author JueYue | ||||
* 2015年4月29日 下午9:22:48 | * 2015年4月29日 下午9:22:48 | ||||
*/ | */ | ||||
@Data | |||||
public class ExcelForEachParams implements Serializable { | public class ExcelForEachParams implements Serializable { | ||||
/** | /** | ||||
@@ -70,75 +72,4 @@ public class ExcelForEachParams implements Serializable { | |||||
} | } | ||||
public String getName() { | |||||
return name; | |||||
} | |||||
public void setName(String name) { | |||||
this.name = name; | |||||
} | |||||
public CellStyle getCellStyle() { | |||||
return cellStyle; | |||||
} | |||||
public void setCellStyle(CellStyle cellStyle) { | |||||
this.cellStyle = cellStyle; | |||||
} | |||||
public short getHeight() { | |||||
return height; | |||||
} | |||||
public void setHeight(short height) { | |||||
this.height = height; | |||||
} | |||||
public String getConstValue() { | |||||
return constValue; | |||||
} | |||||
public void setConstValue(String constValue) { | |||||
this.constValue = constValue; | |||||
} | |||||
public int getColspan() { | |||||
return colspan; | |||||
} | |||||
public void setColspan(int colspan) { | |||||
this.colspan = colspan; | |||||
} | |||||
public int getRowspan() { | |||||
return rowspan; | |||||
} | |||||
public void setRowspan(int rowspan) { | |||||
this.rowspan = rowspan; | |||||
} | |||||
public boolean isNeedSum() { | |||||
return needSum; | |||||
} | |||||
public void setNeedSum(boolean needSum) { | |||||
this.needSum = needSum; | |||||
} | |||||
public Stack<String> getTempName() { | |||||
return tempName; | |||||
} | |||||
public void setTempName(Stack<String> tempName) { | |||||
this.tempName = tempName; | |||||
} | |||||
public boolean isCollectCell() { | |||||
return collectCell; | |||||
} | |||||
public void setCollectCell(boolean collectCell) { | |||||
this.collectCell = collectCell; | |||||
} | |||||
} | } |
@@ -15,6 +15,8 @@ | |||||
*/ | */ | ||||
package cn.afterturn.easypoi.excel.entity.params; | package cn.afterturn.easypoi.excel.entity.params; | ||||
import lombok.Data; | |||||
import java.util.List; | import java.util.List; | ||||
/** | /** | ||||
@@ -22,6 +24,7 @@ import java.util.List; | |||||
* @author JueYue | * @author JueYue | ||||
* @version 1.0 2013年8月24日 | * @version 1.0 2013年8月24日 | ||||
*/ | */ | ||||
@Data | |||||
public class ExcelImportEntity extends ExcelBaseEntity { | public class ExcelImportEntity extends ExcelBaseEntity { | ||||
public final static String IMG_SAVE_PATH = "/excel/upload/img"; | public final static String IMG_SAVE_PATH = "/excel/upload/img"; | ||||
@@ -57,67 +60,4 @@ public class ExcelImportEntity extends ExcelBaseEntity { | |||||
private List<ExcelImportEntity> list; | private List<ExcelImportEntity> list; | ||||
public String getClassType() { | |||||
return classType; | |||||
} | |||||
public String getCollectionName() { | |||||
return collectionName; | |||||
} | |||||
public List<ExcelImportEntity> getList() { | |||||
return list; | |||||
} | |||||
public int getSaveType() { | |||||
return saveType; | |||||
} | |||||
public String getSaveUrl() { | |||||
return saveUrl; | |||||
} | |||||
public void setClassType(String classType) { | |||||
this.classType = classType; | |||||
} | |||||
public void setCollectionName(String collectionName) { | |||||
this.collectionName = collectionName; | |||||
} | |||||
public void setList(List<ExcelImportEntity> list) { | |||||
this.list = list; | |||||
} | |||||
public void setSaveType(int saveType) { | |||||
this.saveType = saveType; | |||||
} | |||||
public void setSaveUrl(String saveUrl) { | |||||
this.saveUrl = saveUrl; | |||||
} | |||||
public String getSuffix() { | |||||
return suffix; | |||||
} | |||||
public void setSuffix(String suffix) { | |||||
this.suffix = suffix; | |||||
} | |||||
public boolean isImportField() { | |||||
return importField; | |||||
} | |||||
public void setImportField(boolean importField) { | |||||
this.importField = importField; | |||||
} | |||||
public String getEnumImportMethod() { | |||||
return enumImportMethod; | |||||
} | |||||
public void setEnumImportMethod(String enumImportMethod) { | |||||
this.enumImportMethod = enumImportMethod; | |||||
} | |||||
} | } |
@@ -15,6 +15,8 @@ | |||||
*/ | */ | ||||
package cn.afterturn.easypoi.excel.entity.params; | package cn.afterturn.easypoi.excel.entity.params; | ||||
import lombok.Data; | |||||
import java.util.List; | import java.util.List; | ||||
/** | /** | ||||
@@ -22,6 +24,7 @@ import java.util.List; | |||||
* | * | ||||
* Created by jue on 14-6-11. | * Created by jue on 14-6-11. | ||||
*/ | */ | ||||
@Data | |||||
public class MergeEntity { | public class MergeEntity { | ||||
/** | /** | ||||
* 合并开始行 | * 合并开始行 | ||||
@@ -50,35 +53,4 @@ public class MergeEntity { | |||||
this.startRow = startRow; | this.startRow = startRow; | ||||
} | } | ||||
public int getEndRow() { | |||||
return endRow; | |||||
} | |||||
public List<String> getRelyList() { | |||||
return relyList; | |||||
} | |||||
public int getStartRow() { | |||||
return startRow; | |||||
} | |||||
public String getText() { | |||||
return text; | |||||
} | |||||
public void setEndRow(int endRow) { | |||||
this.endRow = endRow; | |||||
} | |||||
public void setRelyList(List<String> relyList) { | |||||
this.relyList = relyList; | |||||
} | |||||
public void setStartRow(int startRow) { | |||||
this.startRow = startRow; | |||||
} | |||||
public void setText(String text) { | |||||
this.text = text; | |||||
} | |||||
} | } |
@@ -18,6 +18,7 @@ package cn.afterturn.easypoi.excel.entity.result; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | import java.util.Map; | ||||
import lombok.Data; | |||||
import org.apache.poi.ss.usermodel.Workbook; | import org.apache.poi.ss.usermodel.Workbook; | ||||
/** | /** | ||||
@@ -26,6 +27,7 @@ import org.apache.poi.ss.usermodel.Workbook; | |||||
* @author JueYue | * @author JueYue | ||||
* 2014年6月29日 下午5:12:10 | * 2014年6月29日 下午5:12:10 | ||||
*/ | */ | ||||
@Data | |||||
public class ExcelImportResult<T> { | public class ExcelImportResult<T> { | ||||
/** | /** | ||||
@@ -63,51 +65,4 @@ public class ExcelImportResult<T> { | |||||
this.workbook = workbook; | this.workbook = workbook; | ||||
} | } | ||||
public List<T> getList() { | |||||
return list; | |||||
} | |||||
public Workbook getWorkbook() { | |||||
return workbook; | |||||
} | |||||
public boolean isVerfiyFail() { | |||||
return verfiyFail; | |||||
} | |||||
public void setList(List<T> list) { | |||||
this.list = list; | |||||
} | |||||
public void setVerfiyFail(boolean verfiyFail) { | |||||
this.verfiyFail = verfiyFail; | |||||
} | |||||
public void setWorkbook(Workbook workbook) { | |||||
this.workbook = workbook; | |||||
} | |||||
public Map<String, Object> getMap() { | |||||
return map; | |||||
} | |||||
public void setMap(Map<String, Object> map) { | |||||
this.map = map; | |||||
} | |||||
public Workbook getFailWorkbook() { | |||||
return failWorkbook; | |||||
} | |||||
public void setFailWorkbook(Workbook failWorkbook) { | |||||
this.failWorkbook = failWorkbook; | |||||
} | |||||
public List<T> getFailList() { | |||||
return failList; | |||||
} | |||||
public void setFailList(List<T> failList) { | |||||
this.failList = failList; | |||||
} | |||||
} | } |
@@ -15,12 +15,15 @@ | |||||
*/ | */ | ||||
package cn.afterturn.easypoi.excel.entity.result; | package cn.afterturn.easypoi.excel.entity.result; | ||||
import lombok.Data; | |||||
/** | /** | ||||
* Excel导入处理返回结果 | * Excel导入处理返回结果 | ||||
* | * | ||||
* @author JueYue | * @author JueYue | ||||
* 2014年6月23日 下午11:03:29 | * 2014年6月23日 下午11:03:29 | ||||
*/ | */ | ||||
@Data | |||||
public class ExcelVerifyHandlerResult { | public class ExcelVerifyHandlerResult { | ||||
/** | /** | ||||
* 是否正确 | * 是否正确 | ||||
@@ -44,20 +47,4 @@ public class ExcelVerifyHandlerResult { | |||||
this.msg = msg; | this.msg = msg; | ||||
} | } | ||||
public String getMsg() { | |||||
return msg; | |||||
} | |||||
public boolean isSuccess() { | |||||
return success; | |||||
} | |||||
public void setMsg(String msg) { | |||||
this.msg = msg; | |||||
} | |||||
public void setSuccess(boolean success) { | |||||
this.success = success; | |||||
} | |||||
} | } |
@@ -9,6 +9,10 @@ public interface SaxConstant { | |||||
* Row 表达式 | * Row 表达式 | ||||
*/ | */ | ||||
public static String ROW = "row"; | public static String ROW = "row"; | ||||
/** | |||||
* cell 的位置 | |||||
*/ | |||||
public static String ROW_COL = "r"; | |||||
/** | /** | ||||
* cell 表达式 | * cell 表达式 | ||||
*/ | */ | ||||
@@ -16,12 +16,14 @@ | |||||
package cn.afterturn.easypoi.excel.entity.sax; | package cn.afterturn.easypoi.excel.entity.sax; | ||||
import cn.afterturn.easypoi.excel.entity.enmus.CellValueType; | import cn.afterturn.easypoi.excel.entity.enmus.CellValueType; | ||||
import lombok.Data; | |||||
/** | /** | ||||
* Cell 对象 | * Cell 对象 | ||||
* @author JueYue | * @author JueYue | ||||
* 2014年12月29日 下午10:12:57 | * 2014年12月29日 下午10:12:57 | ||||
*/ | */ | ||||
@Data | |||||
public class SaxReadCellEntity { | public class SaxReadCellEntity { | ||||
/** | /** | ||||
* 值类型 | * 值类型 | ||||
@@ -37,22 +39,6 @@ public class SaxReadCellEntity { | |||||
this.value = value; | this.value = value; | ||||
} | } | ||||
public CellValueType getCellType() { | |||||
return cellType; | |||||
} | |||||
public void setCellType(CellValueType cellType) { | |||||
this.cellType = cellType; | |||||
} | |||||
public Object getValue() { | |||||
return value; | |||||
} | |||||
public void setValue(Object value) { | |||||
this.value = value; | |||||
} | |||||
@Override | @Override | ||||
public String toString() { | public String toString() { | ||||
return "[type=" + cellType.toString() + ",value=" + value + "]"; | return "[type=" + cellType.toString() + ",value=" + value + "]"; | ||||
@@ -66,13 +66,13 @@ public class ExcelExportService extends BaseExportService { | |||||
List<ExcelExportEntity> excelParams, int cellIndex) { | List<ExcelExportEntity> excelParams, int cellIndex) { | ||||
Row row = sheet.getRow(index) == null ? sheet.createRow(index) : sheet.getRow(index); | Row row = sheet.getRow(index) == null ? sheet.createRow(index) : sheet.getRow(index); | ||||
int rows = getRowNums(excelParams, true); | int rows = getRowNums(excelParams, true); | ||||
row.setHeight(title.getHeaderHeight()); | |||||
row.setHeight((short)title.getHeaderHeight()); | |||||
Row listRow = null; | Row listRow = null; | ||||
if (rows >= 2) { | if (rows >= 2) { | ||||
listRow = sheet.getRow(index + 1); | listRow = sheet.getRow(index + 1); | ||||
if (listRow == null) { | if (listRow == null) { | ||||
listRow = sheet.createRow(index + 1); | listRow = sheet.createRow(index + 1); | ||||
listRow.setHeight(title.getHeaderHeight()); | |||||
listRow.setHeight((short)(short)title.getHeaderHeight()); | |||||
} | } | ||||
} | } | ||||
@@ -21,7 +21,6 @@ import cn.afterturn.easypoi.excel.entity.vo.PoiBaseConstants; | |||||
import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler; | import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler; | ||||
import cn.afterturn.easypoi.exception.excel.ExcelExportException; | import cn.afterturn.easypoi.exception.excel.ExcelExportException; | ||||
import cn.afterturn.easypoi.exception.excel.enums.ExcelExportEnum; | import cn.afterturn.easypoi.exception.excel.enums.ExcelExportEnum; | ||||
import cn.afterturn.easypoi.handler.inter.IExcelExportServer; | |||||
import cn.afterturn.easypoi.util.PoiExcelGraphDataUtil; | import cn.afterturn.easypoi.util.PoiExcelGraphDataUtil; | ||||
import cn.afterturn.easypoi.util.PoiMergeCellUtil; | import cn.afterturn.easypoi.util.PoiMergeCellUtil; | ||||
import cn.afterturn.easypoi.util.PoiPublicUtil; | import cn.afterturn.easypoi.util.PoiPublicUtil; | ||||
@@ -69,15 +68,16 @@ public abstract class BaseExportService extends ExportCommonService { | |||||
int maxHeight = 1, listMaxHeight = 1; | int maxHeight = 1, listMaxHeight = 1; | ||||
// 合并需要合并的单元格 | // 合并需要合并的单元格 | ||||
int margeCellNum = cellNum; | int margeCellNum = cellNum; | ||||
int indexKey = 0; | |||||
if (excelParams != null && !excelParams.isEmpty()){ | |||||
int indexKey = 0; | |||||
if (excelParams != null && !excelParams.isEmpty()) { | |||||
indexKey = createIndexCell(row, index, excelParams.get(0)); | indexKey = createIndexCell(row, index, excelParams.get(0)); | ||||
} | } | ||||
cellNum += indexKey; | cellNum += indexKey; | ||||
for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) { | for (int k = indexKey, paramSize = excelParams.size(); k < paramSize; k++) { | ||||
entity = excelParams.get(k); | entity = excelParams.get(k); | ||||
//不论数据是否为空都应该把该列的数据跳过去 | |||||
if (entity.getList() != null) { | if (entity.getList() != null) { | ||||
Collection<?> list = getListCellValue(entity, t); | |||||
Collection<?> list = getListCellValue(entity, t); | |||||
int tmpListHeight = 0; | int tmpListHeight = 0; | ||||
if (list != null && list.size() > 0) { | if (list != null && list.size() > 0) { | ||||
int tempCellNum = 0; | int tempCellNum = 0; | ||||
@@ -88,6 +88,8 @@ public abstract class BaseExportService extends ExportCommonService { | |||||
} | } | ||||
cellNum = tempCellNum; | cellNum = tempCellNum; | ||||
listMaxHeight = Math.max(listMaxHeight, tmpListHeight); | listMaxHeight = Math.max(listMaxHeight, tmpListHeight); | ||||
} else { | |||||
cellNum = cellNum + getListCellSize(entity.getList()); | |||||
} | } | ||||
} else { | } else { | ||||
Object value = getCellValue(entity, t); | Object value = getCellValue(entity, t); | ||||
@@ -123,7 +125,7 @@ public abstract class BaseExportService extends ExportCommonService { | |||||
margeCellNum += entity.getList().size(); | margeCellNum += entity.getList().size(); | ||||
} else if (entity.isNeedMerge() && maxHeight > 1) { | } else if (entity.isNeedMerge() && maxHeight > 1) { | ||||
for (int i = index + 1; i < index + maxHeight; i++) { | for (int i = index + 1; i < index + maxHeight; i++) { | ||||
if(sheet.getRow(i) == null ) { | |||||
if (sheet.getRow(i) == null) { | |||||
sheet.createRow(i); | sheet.createRow(i); | ||||
} | } | ||||
sheet.getRow(i).createCell(margeCellNum); | sheet.getRow(i).createCell(margeCellNum); | ||||
@@ -142,6 +144,24 @@ public abstract class BaseExportService extends ExportCommonService { | |||||
} | } | ||||
/** | |||||
* 获取集合的宽度 | |||||
* | |||||
* @param list | |||||
* @return | |||||
*/ | |||||
protected int getListCellSize(List<ExcelExportEntity> list) { | |||||
int cellSize = 0; | |||||
for (ExcelExportEntity ee : list) { | |||||
if (ee.getList() != null) { | |||||
cellSize += getListCellSize(ee.getList()); | |||||
} else { | |||||
cellSize++; | |||||
} | |||||
} | |||||
return cellSize; | |||||
} | |||||
/** | /** | ||||
* 图片类型的Cell | * 图片类型的Cell | ||||
*/ | */ | ||||
@@ -26,7 +26,6 @@ import cn.afterturn.easypoi.exception.excel.enums.ExcelExportEnum; | |||||
import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; | import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; | ||||
import cn.afterturn.easypoi.handler.inter.IExcelDictHandler; | import cn.afterturn.easypoi.handler.inter.IExcelDictHandler; | ||||
import cn.afterturn.easypoi.handler.inter.IExcelI18nHandler; | import cn.afterturn.easypoi.handler.inter.IExcelI18nHandler; | ||||
import cn.afterturn.easypoi.util.PoiElUtil; | |||||
import cn.afterturn.easypoi.util.PoiPublicUtil; | import cn.afterturn.easypoi.util.PoiPublicUtil; | ||||
import cn.afterturn.easypoi.util.PoiReflectorUtil; | import cn.afterturn.easypoi.util.PoiReflectorUtil; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
@@ -40,10 +39,7 @@ import java.lang.reflect.Method; | |||||
import java.lang.reflect.ParameterizedType; | import java.lang.reflect.ParameterizedType; | ||||
import java.text.DecimalFormat; | import java.text.DecimalFormat; | ||||
import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
import java.time.Instant; | |||||
import java.time.LocalDate; | |||||
import java.time.LocalDateTime; | |||||
import java.time.ZoneId; | |||||
import java.time.*; | |||||
import java.util.*; | import java.util.*; | ||||
/** | /** | ||||
@@ -68,7 +64,7 @@ public class ExportCommonService { | |||||
private ExcelExportEntity createExcelExportEntity(Field field, String targetId, | private ExcelExportEntity createExcelExportEntity(Field field, String targetId, | ||||
Class<?> pojoClass, | Class<?> pojoClass, | ||||
List<Method> getMethods, ExcelEntity excelGroup) throws Exception { | List<Method> getMethods, ExcelEntity excelGroup) throws Exception { | ||||
Excel excel = field.getAnnotation(Excel.class); | |||||
Excel excel = field.getAnnotation(Excel.class); | |||||
ExcelExportEntity excelEntity = new ExcelExportEntity(); | ExcelExportEntity excelEntity = new ExcelExportEntity(); | ||||
excelEntity.setType(excel.type()); | excelEntity.setType(excel.type()); | ||||
getExcelField(targetId, field, excelEntity, excel, pojoClass, excelGroup); | getExcelField(targetId, field, excelEntity, excel, pojoClass, excelGroup); | ||||
@@ -89,15 +85,21 @@ public class ExportCommonService { | |||||
} else if (value instanceof Date) { | } else if (value instanceof Date) { | ||||
temp = (Date) value; | temp = (Date) value; | ||||
} else if (value instanceof Instant) { | } else if (value instanceof Instant) { | ||||
Instant instant = (Instant)value; | |||||
Instant instant = (Instant) value; | |||||
temp = Date.from(instant); | temp = Date.from(instant); | ||||
} else if (value instanceof LocalDate) { | |||||
LocalDate localDate = (LocalDate)value; | |||||
} else if (value instanceof LocalDate) { | |||||
LocalDate localDate = (LocalDate) value; | |||||
temp = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); | temp = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); | ||||
} else if(value instanceof LocalDateTime){ | |||||
LocalDateTime localDateTime = (LocalDateTime)value; | |||||
} else if (value instanceof LocalDateTime) { | |||||
LocalDateTime localDateTime = (LocalDateTime) value; | |||||
temp = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); | temp = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); | ||||
} else if(value instanceof java.sql.Date) { | |||||
} else if (value instanceof ZonedDateTime) { | |||||
ZonedDateTime zonedDateTime = (ZonedDateTime) value; | |||||
temp = Date.from(zonedDateTime.toInstant()); | |||||
} else if (value instanceof OffsetDateTime) { | |||||
OffsetDateTime offsetDateTime = (OffsetDateTime) value; | |||||
temp = Date.from(offsetDateTime.toInstant()); | |||||
} else if (value instanceof java.sql.Date) { | |||||
temp = new Date(((java.sql.Date) value).getTime()); | temp = new Date(((java.sql.Date) value).getTime()); | ||||
} else if (value instanceof java.sql.Time) { | } else if (value instanceof java.sql.Time) { | ||||
temp = new Date(((java.sql.Time) value).getTime()); | temp = new Date(((java.sql.Time) value).getTime()); | ||||
@@ -106,7 +108,7 @@ public class ExportCommonService { | |||||
} | } | ||||
if (temp != null) { | if (temp != null) { | ||||
SimpleDateFormat format = new SimpleDateFormat(entity.getFormat()); | SimpleDateFormat format = new SimpleDateFormat(entity.getFormat()); | ||||
if(StringUtils.isNotEmpty(entity.getTimezone())){ | |||||
if (StringUtils.isNotEmpty(entity.getTimezone())) { | |||||
format.setTimeZone(TimeZone.getTimeZone(entity.getTimezone())); | format.setTimeZone(TimeZone.getTimeZone(entity.getTimezone())); | ||||
} | } | ||||
value = format.format(temp); | value = format.format(temp); | ||||
@@ -123,7 +125,7 @@ public class ExportCommonService { | |||||
LOGGER.error("data want num format ,but is not num, value is:" + value); | LOGGER.error("data want num format ,but is not num, value is:" + value); | ||||
return null; | return null; | ||||
} | } | ||||
Double d = Double.parseDouble(value.toString()); | |||||
Double d = Double.parseDouble(value.toString()); | |||||
DecimalFormat df = new DecimalFormat(entity.getNumFormat()); | DecimalFormat df = new DecimalFormat(entity.getNumFormat()); | ||||
return df.format(d); | return df.format(d); | ||||
} | } | ||||
@@ -136,7 +138,7 @@ public class ExportCommonService { | |||||
public void getAllExcelField(String[] exclusions, String targetId, Field[] fields, | public void getAllExcelField(String[] exclusions, String targetId, Field[] fields, | ||||
List<ExcelExportEntity> excelParams, Class<?> pojoClass, | List<ExcelExportEntity> excelParams, Class<?> pojoClass, | ||||
List<Method> getMethods, ExcelEntity excelGroup) throws Exception { | List<Method> getMethods, ExcelEntity excelGroup) throws Exception { | ||||
List<String> exclusionsList = exclusions != null ? Arrays.asList(exclusions) : null; | |||||
List<String> exclusionsList = exclusions != null ? Arrays.asList(exclusions) : null; | |||||
ExcelExportEntity excelEntity; | ExcelExportEntity excelEntity; | ||||
// 遍历整个filed | // 遍历整个filed | ||||
for (int i = 0; i < fields.length; i++) { | for (int i = 0; i < fields.length; i++) { | ||||
@@ -147,16 +149,16 @@ public class ExportCommonService { | |||||
} | } | ||||
// 首先判断Excel 可能一下特殊数据用户回自定义处理 | // 首先判断Excel 可能一下特殊数据用户回自定义处理 | ||||
if (field.getAnnotation(Excel.class) != null) { | if (field.getAnnotation(Excel.class) != null) { | ||||
Excel excel = field.getAnnotation(Excel.class); | |||||
String name = PoiPublicUtil.getValueByTargetId(excel.name(), targetId, null); | |||||
Excel excel = field.getAnnotation(Excel.class); | |||||
String name = PoiPublicUtil.getValueByTargetId(excel.name(), targetId, null); | |||||
if (StringUtils.isNotBlank(name)) { | if (StringUtils.isNotBlank(name)) { | ||||
excelParams.add(createExcelExportEntity(field, targetId, pojoClass, getMethods, excelGroup)); | excelParams.add(createExcelExportEntity(field, targetId, pojoClass, getMethods, excelGroup)); | ||||
} | } | ||||
} else if (PoiPublicUtil.isCollection(field.getType())) { | } else if (PoiPublicUtil.isCollection(field.getType())) { | ||||
ExcelCollection excel = field.getAnnotation(ExcelCollection.class); | |||||
ParameterizedType pt = (ParameterizedType) field.getGenericType(); | |||||
Class<?> clz = (Class<?>) pt.getActualTypeArguments()[0]; | |||||
List<ExcelExportEntity> list = new ArrayList<ExcelExportEntity>(); | |||||
ExcelCollection excel = field.getAnnotation(ExcelCollection.class); | |||||
ParameterizedType pt = (ParameterizedType) field.getGenericType(); | |||||
Class<?> clz = (Class<?>) pt.getActualTypeArguments()[0]; | |||||
List<ExcelExportEntity> list = new ArrayList<ExcelExportEntity>(); | |||||
getAllExcelField(exclusions, | getAllExcelField(exclusions, | ||||
StringUtils.isNotEmpty(excel.id()) ? excel.id() : targetId, | StringUtils.isNotEmpty(excel.id()) ? excel.id() : targetId, | ||||
PoiPublicUtil.getClassFields(clz), list, clz, null, null); | PoiPublicUtil.getClassFields(clz), list, clz, null, null); | ||||
@@ -199,8 +201,8 @@ public class ExportCommonService { | |||||
value = ((Map<?, ?>) obj).get(entity.getKey()); | value = ((Map<?, ?>) obj).get(entity.getKey()); | ||||
} else { | } else { | ||||
// 考虑直接用对象导出只能每次获取值的办法 | // 考虑直接用对象导出只能每次获取值的办法 | ||||
if(entity.getMethods() == null && entity.getMethod() == null){ | |||||
value = PoiPublicUtil.getParamsValue(entity.getKey().toString(),obj); | |||||
if (entity.getMethods() == null && entity.getMethod() == null) { | |||||
value = PoiPublicUtil.getParamsValue(entity.getKey().toString(), obj); | |||||
} else { | } else { | ||||
value = entity.getMethods() != null ? getFieldBySomeMethod(entity.getMethods(), obj) | value = entity.getMethods() != null ? getFieldBySomeMethod(entity.getMethods(), obj) | ||||
: entity.getMethod().invoke(obj, new Object[]{}); | : entity.getMethod().invoke(obj, new Object[]{}); | ||||
@@ -353,8 +355,8 @@ public class ExportCommonService { | |||||
Map.Entry<String, List<ExcelExportEntity>> entry = (Map.Entry) it.next(); | Map.Entry<String, List<ExcelExportEntity>> entry = (Map.Entry) it.next(); | ||||
Collections.sort(entry.getValue()); | Collections.sort(entry.getValue()); | ||||
// 插入到excelParams当中 | // 插入到excelParams当中 | ||||
boolean isInsert = false; | |||||
String groupName = "START"; | |||||
boolean isInsert = false; | |||||
String groupName = "START"; | |||||
for (int i = 0; i < excelParams.size(); i++) { | for (int i = 0; i < excelParams.size(); i++) { | ||||
// 跳过groupName 的元素,防止破会内部结构 | // 跳过groupName 的元素,防止破会内部结构 | ||||
if (excelParams.get(i).getOrderNum() > entry.getValue().get(0).getOrderNum() | if (excelParams.get(i).getOrderNum() > entry.getValue().get(0).getOrderNum() | ||||
@@ -410,11 +412,11 @@ public class ExportCommonService { | |||||
/** | /** | ||||
* 判断表头是只有一行还是多行 | * 判断表头是只有一行还是多行 | ||||
*/ | */ | ||||
public int getRowNums(List<ExcelExportEntity> excelParams,boolean isDeep) { | |||||
public int getRowNums(List<ExcelExportEntity> excelParams, boolean isDeep) { | |||||
for (int i = 0; i < excelParams.size(); i++) { | for (int i = 0; i < excelParams.size(); i++) { | ||||
if (excelParams.get(i).getList() != null | if (excelParams.get(i).getList() != null | ||||
&& StringUtils.isNotBlank(excelParams.get(i).getName())) { | && StringUtils.isNotBlank(excelParams.get(i).getName())) { | ||||
return isDeep? 1 + getRowNums(excelParams.get(i).getList() , isDeep) : 2; | |||||
return isDeep ? 1 + getRowNums(excelParams.get(i).getList(), isDeep) : 2; | |||||
} | } | ||||
if (StringUtils.isNotEmpty(excelParams.get(i).getGroupName())) { | if (StringUtils.isNotEmpty(excelParams.get(i).getGroupName())) { | ||||
return 2; | return 2; | ||||
@@ -99,7 +99,11 @@ public class CellValueService { | |||||
result = ((Date) result).toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); | result = ((Date) result).toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); | ||||
} else if (("class java.time.LocalDateTime").equals(classFullName)) { | } else if (("class java.time.LocalDateTime").equals(classFullName)) { | ||||
result = ((Date) result).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); | result = ((Date) result).toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); | ||||
} else if (("class java.sql.Date").equals(classFullName)) { | |||||
} else if (("class java.time.OffsetDateTime").equals(classFullName)) { | |||||
result = ((Date) result).toInstant().atZone(ZoneId.systemDefault()).toOffsetDateTime(); | |||||
} else if (("class java.time.ZonedDateTime").equals(classFullName)) { | |||||
result = ((Date) result).toInstant().atZone(ZoneId.systemDefault()); | |||||
} else if (("class java.sql.Date").equals(classFullName)) { | |||||
result = new java.sql.Date(((Date) result).getTime()); | result = new java.sql.Date(((Date) result).getTime()); | ||||
} else if (("class java.sql.Time").equals(classFullName)) { | } else if (("class java.sql.Time").equals(classFullName)) { | ||||
result = new Time(((Date) result).getTime()); | result = new Time(((Date) result).getTime()); | ||||
@@ -45,12 +45,17 @@ public class SheetHandler extends DefaultHandler { | |||||
private StylesTable stylesTable; | private StylesTable stylesTable; | ||||
private String lastContents; | private String lastContents; | ||||
/** 当前行**/ | |||||
/** | |||||
* 当前行 | |||||
**/ | |||||
private int curRow = 0; | private int curRow = 0; | ||||
/**当前列 **/ | |||||
/** | |||||
* 当前列 | |||||
**/ | |||||
private int curCol = 0; | private int curCol = 0; | ||||
private CellValueType type; | private CellValueType type; | ||||
private String currentLocation, prevLocation; | |||||
private ISaxRowRead read; | private ISaxRowRead read; | ||||
@@ -69,6 +74,8 @@ public class SheetHandler extends DefaultHandler { | |||||
lastContents = ""; | lastContents = ""; | ||||
if (COL.equals(name)) { | if (COL.equals(name)) { | ||||
String cellType = attributes.getValue(TYPE); | String cellType = attributes.getValue(TYPE); | ||||
prevLocation = currentLocation; | |||||
currentLocation = attributes.getValue(ROW_COL); | |||||
if (STRING.equals(cellType)) { | if (STRING.equals(cellType)) { | ||||
type = CellValueType.String; | type = CellValueType.String; | ||||
return; | return; | ||||
@@ -128,7 +135,10 @@ public class SheetHandler extends DefaultHandler { | |||||
} catch (Exception e) { | } catch (Exception e) { | ||||
} | } | ||||
} | } | ||||
//t元素也包含字符串 | |||||
if (VALUE.equals(name) && StringUtils.isNotEmpty(prevLocation)) { | |||||
addNullCell(prevLocation, currentLocation); | |||||
} | |||||
//t元素也包含字符串 | |||||
if (CellValueType.TElement.equals(type)) { | if (CellValueType.TElement.equals(type)) { | ||||
String value = lastContents.trim(); | String value = lastContents.trim(); | ||||
rowList.add(curCol, new SaxReadCellEntity(CellValueType.String, value)); | rowList.add(curCol, new SaxReadCellEntity(CellValueType.String, value)); | ||||
@@ -162,6 +172,50 @@ public class SheetHandler extends DefaultHandler { | |||||
} | } | ||||
private void addNullCell(String prevLocation, String currentLocation) { | |||||
// 拆分行和列 | |||||
String[] prev = getRowCell(prevLocation); | |||||
String[] current = getRowCell(currentLocation); | |||||
if (prev[1].equalsIgnoreCase(current[1])) { | |||||
int prevCell = getCellNum(prev[0]) + 1; | |||||
int currentCell = getCellNum(current[0]); | |||||
for (int i = prevCell; i < currentCell; i++) { | |||||
rowList.add(curCol, new SaxReadCellEntity(CellValueType.String, "")); | |||||
curCol++; | |||||
} | |||||
} | |||||
} | |||||
private int getCellNum(String cell) { | |||||
if (StringUtils.isEmpty(cell)) { | |||||
return 0; | |||||
} | |||||
char[] chars = cell.toUpperCase().toCharArray(); | |||||
int n = 0; | |||||
for (int i = cell.length() - 1, j = 1; i >= 0; i--, j *= 26) { | |||||
char c = (chars[i]); | |||||
if (c < 'A' || c > 'Z') { | |||||
return 0; | |||||
} | |||||
n += ((int) c - 64) * j; | |||||
} | |||||
return n; | |||||
} | |||||
private String[] getRowCell(String prevLocation) { | |||||
StringBuilder row = new StringBuilder(); | |||||
StringBuilder cell = new StringBuilder(); | |||||
char[] chars = prevLocation.toCharArray(); | |||||
for (int i = 0; i < chars.length; i++) { | |||||
if (chars[i] >= '0' && chars[i] <= '9') { | |||||
cell.append(chars[i]); | |||||
} else { | |||||
row.append(chars[i]); | |||||
} | |||||
} | |||||
return new String[]{row.toString(), cell.toString()}; | |||||
} | |||||
@Override | @Override | ||||
public void characters(char[] ch, int start, int length) throws SAXException { | public void characters(char[] ch, int start, int length) throws SAXException { | ||||
//得到单元格内容的值 | //得到单元格内容的值 | ||||
@@ -204,6 +204,13 @@ | |||||
<version>3.2.6</version> | <version>3.2.6</version> | ||||
</dependency> | </dependency> | ||||
<dependency> | |||||
<groupId>org.projectlombok</groupId> | |||||
<artifactId>lombok</artifactId> | |||||
<version>1.16.20</version> | |||||
<scope>provided</scope> | |||||
</dependency> | |||||
<!-- 模块版本 --> | <!-- 模块版本 --> | ||||
<dependency> | <dependency> | ||||
<groupId>cn.afterturn</groupId> | <groupId>cn.afterturn</groupId> | ||||