| @@ -37,6 +37,7 @@ public class FileLoaderImpl implements IFileLoader { | |||||
| private static final Logger LOGGER = LoggerFactory.getLogger(FileLoaderImpl.class); | private static final Logger LOGGER = LoggerFactory.getLogger(FileLoaderImpl.class); | ||||
| @Override | |||||
| public byte[] getFile(String url) { | public byte[] getFile(String url) { | ||||
| InputStream fileis = null; | InputStream fileis = null; | ||||
| ByteArrayOutputStream baos = null; | ByteArrayOutputStream baos = null; | ||||
| @@ -52,8 +52,9 @@ public final class POICacheManager { | |||||
| .build(new CacheLoader<String, byte[]>() { | .build(new CacheLoader<String, byte[]>() { | ||||
| @Override | @Override | ||||
| public byte[] load(String url) throws Exception { | public byte[] load(String url) throws Exception { | ||||
| if (LOCAL_FILELOADER.get() != null) | |||||
| if (LOCAL_FILELOADER.get() != null) { | |||||
| return LOCAL_FILELOADER.get().getFile(url); | return LOCAL_FILELOADER.get().getFile(url); | ||||
| } | |||||
| return fileLoder.getFile(url); | return fileLoder.getFile(url); | ||||
| } | } | ||||
| }); | }); | ||||
| @@ -81,8 +82,9 @@ public final class POICacheManager { | |||||
| * @param fileLoder | * @param fileLoder | ||||
| */ | */ | ||||
| public static void setFileLoderOnce(IFileLoader fileLoder) { | public static void setFileLoderOnce(IFileLoader fileLoder) { | ||||
| if (fileLoder != null) | |||||
| if (fileLoder != null) { | |||||
| LOCAL_FILELOADER.set(fileLoder); | LOCAL_FILELOADER.set(fileLoder); | ||||
| } | |||||
| } | } | ||||
| public static void setLoadingCache(LoadingCache<String, byte[]> loadingCache) { | public static void setLoadingCache(LoadingCache<String, byte[]> loadingCache) { | ||||
| @@ -37,7 +37,7 @@ public class ExcelBaseEntity { | |||||
| /** | /** | ||||
| * 对应type | * 对应type | ||||
| */ | */ | ||||
| private int type = BaseEntityTypeConstants.StringType; | |||||
| private int type = BaseEntityTypeConstants.STRING_TYPE; | |||||
| /** | /** | ||||
| * 数据库格式 | * 数据库格式 | ||||
| */ | */ | ||||
| @@ -212,18 +212,23 @@ public class ExcelExportEntity extends ExcelBaseEntity implements Comparable<Exc | |||||
| @Override | @Override | ||||
| public boolean equals(Object obj) { | public boolean equals(Object obj) { | ||||
| if (this == obj) | |||||
| if (this == obj) { | |||||
| return true; | return true; | ||||
| if (obj == null) | |||||
| } | |||||
| if (obj == null) { | |||||
| return false; | return false; | ||||
| if (getClass() != obj.getClass()) | |||||
| } | |||||
| if (getClass() != obj.getClass()) { | |||||
| return false; | return false; | ||||
| } | |||||
| ExcelExportEntity other = (ExcelExportEntity) obj; | ExcelExportEntity other = (ExcelExportEntity) obj; | ||||
| if (key == null) { | if (key == null) { | ||||
| if (other.key != null) | |||||
| if (other.key != null) { | |||||
| return false; | return false; | ||||
| } else if (!key.equals(other.key)) | |||||
| } | |||||
| } else if (!key.equals(other.key)) { | |||||
| return false; | return false; | ||||
| } | |||||
| return true; | return true; | ||||
| } | } | ||||
| } | } | ||||
| @@ -11,7 +11,7 @@ package cn.afterturn.easypoi.excel.entity.vo; | |||||
| * | * | ||||
| */ | */ | ||||
| public interface BaseEntityTypeConstants { | public interface BaseEntityTypeConstants { | ||||
| public final static Integer StringType = 1; | |||||
| public final static Integer DoubleType = 10; | |||||
| public final static Integer ImageType = 3; | |||||
| public final static Integer STRING_TYPE = 1; | |||||
| public final static Integer DOUBLE_TYPE = 10; | |||||
| public final static Integer IMAGE_TYPE = 3; | |||||
| } | } | ||||
| @@ -68,7 +68,7 @@ public class ExcelBatchExportServer extends ExcelExportServer { | |||||
| excelParams.add(indexExcelEntity(entity)); | excelParams.add(indexExcelEntity(entity)); | ||||
| } | } | ||||
| // 得到所有字段 | // 得到所有字段 | ||||
| Field fileds[] = PoiPublicUtil.getClassFields(pojoClass); | |||||
| Field[] fileds = PoiPublicUtil.getClassFields(pojoClass); | |||||
| ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); | ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); | ||||
| String targetId = etarget == null ? null : etarget.value(); | String targetId = etarget == null ? null : etarget.value(); | ||||
| getAllExcelField(entity.getExclusions(), targetId, fileds, excelParams, pojoClass, | getAllExcelField(entity.getExclusions(), targetId, fileds, excelParams, pojoClass, | ||||
| @@ -104,6 +104,7 @@ public class ExcelBatchExportServer extends ExcelExportServer { | |||||
| return workbook; | return workbook; | ||||
| } | } | ||||
| @Override | |||||
| protected void insertDataToSheet(Workbook workbook, ExportParams entity, | protected void insertDataToSheet(Workbook workbook, ExportParams entity, | ||||
| List<ExcelExportEntity> entityList, Collection<?> dataSet, | List<ExcelExportEntity> entityList, Collection<?> dataSet, | ||||
| Sheet sheet) { | Sheet sheet) { | ||||
| @@ -34,7 +34,7 @@ import cn.afterturn.easypoi.excel.annotation.ExcelTarget; | |||||
| import cn.afterturn.easypoi.excel.entity.ExportParams; | import cn.afterturn.easypoi.excel.entity.ExportParams; | ||||
| import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; | import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; | ||||
| import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; | import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; | ||||
| import cn.afterturn.easypoi.excel.export.base.ExportBaseServer; | |||||
| import cn.afterturn.easypoi.excel.export.base.BaseExportServer; | |||||
| 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; | ||||
| @@ -46,10 +46,10 @@ import cn.afterturn.easypoi.util.PoiPublicUtil; | |||||
| * | * | ||||
| * @author JueYue 2014年6月17日 下午5:30:54 | * @author JueYue 2014年6月17日 下午5:30:54 | ||||
| */ | */ | ||||
| public class ExcelExportServer extends ExportBaseServer { | |||||
| public class ExcelExportServer extends BaseExportServer { | |||||
| // 最大行数,超过自动多Sheet | // 最大行数,超过自动多Sheet | ||||
| private int MAX_NUM = 60000; | |||||
| private static int MAX_NUM = 60000; | |||||
| protected int createHeaderAndTitle(ExportParams entity, Sheet sheet, Workbook workbook, | protected int createHeaderAndTitle(ExportParams entity, Sheet sheet, Workbook workbook, | ||||
| List<ExcelExportEntity> excelParams) { | List<ExcelExportEntity> excelParams) { | ||||
| @@ -175,8 +175,9 @@ public class ExcelExportServer extends ExportBaseServer { | |||||
| Object t = its.next(); | Object t = its.next(); | ||||
| index += createCells(patriarch, index, t, excelParams, sheet, workbook, rowHeight); | index += createCells(patriarch, index, t, excelParams, sheet, workbook, rowHeight); | ||||
| tempList.add(t); | tempList.add(t); | ||||
| if (index >= MAX_NUM) | |||||
| if (index >= MAX_NUM) { | |||||
| break; | break; | ||||
| } | |||||
| } | } | ||||
| if (entity.getFreezeCol() != 0) { | if (entity.getFreezeCol() != 0) { | ||||
| sheet.createFreezePane(entity.getFreezeCol(), 0, entity.getFreezeCol(), 0); | sheet.createFreezePane(entity.getFreezeCol(), 0, entity.getFreezeCol(), 0); | ||||
| @@ -28,8 +28,6 @@ import org.apache.poi.ss.usermodel.Workbook; | |||||
| import org.apache.poi.ss.util.CellRangeAddress; | import org.apache.poi.ss.util.CellRangeAddress; | ||||
| import org.apache.poi.xssf.usermodel.XSSFClientAnchor; | import org.apache.poi.xssf.usermodel.XSSFClientAnchor; | ||||
| import org.apache.poi.xssf.usermodel.XSSFRichTextString; | import org.apache.poi.xssf.usermodel.XSSFRichTextString; | ||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import java.text.DecimalFormat; | import java.text.DecimalFormat; | ||||
| import java.util.Collection; | import java.util.Collection; | ||||
| @@ -56,7 +54,7 @@ import cn.afterturn.easypoi.util.PoiPublicUtil; | |||||
| * @author JueYue 2014年6月17日 下午6:15:13 | * @author JueYue 2014年6月17日 下午6:15:13 | ||||
| */ | */ | ||||
| @SuppressWarnings("unchecked") | @SuppressWarnings("unchecked") | ||||
| public abstract class ExportBaseServer extends ExportCommonServer { | |||||
| public abstract class BaseExportServer extends ExportCommonServer { | |||||
| private int currentIndex = 0; | private int currentIndex = 0; | ||||
| @@ -100,7 +98,7 @@ public abstract class ExportBaseServer extends ExportCommonServer { | |||||
| } else { | } else { | ||||
| Object value = getCellValue(entity, t); | Object value = getCellValue(entity, t); | ||||
| if (entity.getType() == BaseEntityTypeConstants.StringType) { | |||||
| if (entity.getType() == BaseEntityTypeConstants.STRING_TYPE) { | |||||
| createStringCell(row, cellNum++, value == null ? "" : value.toString(), | createStringCell(row, cellNum++, value == null ? "" : value.toString(), | ||||
| index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), | index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), | ||||
| entity); | entity); | ||||
| @@ -110,7 +108,7 @@ public abstract class ExportBaseServer extends ExportCommonServer { | |||||
| row.getSheet().getWorkbook().getCreationHelper(), t, | row.getSheet().getWorkbook().getCreationHelper(), t, | ||||
| entity.getName(), value)); | entity.getName(), value)); | ||||
| } | } | ||||
| } else if (entity.getType() == BaseEntityTypeConstants.DoubleType) { | |||||
| } else if (entity.getType() == BaseEntityTypeConstants.DOUBLE_TYPE) { | |||||
| createDoubleCell(row, cellNum++, value == null ? "" : value.toString(), | createDoubleCell(row, cellNum++, value == null ? "" : value.toString(), | ||||
| index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), | index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), | ||||
| entity); | entity); | ||||
| @@ -193,7 +191,7 @@ public abstract class ExportBaseServer extends ExportCommonServer { | |||||
| } | } | ||||
| private int createIndexCell(Row row, int index, ExcelExportEntity excelExportEntity) { | private int createIndexCell(Row row, int index, ExcelExportEntity excelExportEntity) { | ||||
| if (excelExportEntity.getName() != null && excelExportEntity.getName().equals("序号") && excelExportEntity.getFormat() != null | |||||
| if (excelExportEntity.getName() != null && "序号".equals(excelExportEntity.getName()) && excelExportEntity.getFormat() != null | |||||
| && excelExportEntity.getFormat().equals(PoiBaseConstants.IS_ADD_INDEX)) { | && excelExportEntity.getFormat().equals(PoiBaseConstants.IS_ADD_INDEX)) { | ||||
| createStringCell(row, 0, currentIndex + "", | createStringCell(row, 0, currentIndex + "", | ||||
| index % 2 == 0 ? getStyles(false, null) : getStyles(true, null), null); | index % 2 == 0 ? getStyles(false, null) : getStyles(true, null), null); | ||||
| @@ -221,7 +219,7 @@ public abstract class ExportBaseServer extends ExportCommonServer { | |||||
| for (int k = 0, paramSize = excelParams.size(); k < paramSize; k++) { | for (int k = 0, paramSize = excelParams.size(); k < paramSize; k++) { | ||||
| entity = excelParams.get(k); | entity = excelParams.get(k); | ||||
| Object value = getCellValue(entity, obj); | Object value = getCellValue(entity, obj); | ||||
| if (entity.getType() == BaseEntityTypeConstants.StringType) { | |||||
| if (entity.getType() == BaseEntityTypeConstants.STRING_TYPE) { | |||||
| createStringCell(row, cellNum++, value == null ? "" : value.toString(), | createStringCell(row, cellNum++, value == null ? "" : value.toString(), | ||||
| row.getRowNum() % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), | row.getRowNum() % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), | ||||
| entity); | entity); | ||||
| @@ -231,7 +229,7 @@ public abstract class ExportBaseServer extends ExportCommonServer { | |||||
| row.getSheet().getWorkbook().getCreationHelper(), obj, entity.getName(), | row.getSheet().getWorkbook().getCreationHelper(), obj, entity.getName(), | ||||
| value)); | value)); | ||||
| } | } | ||||
| } else if (entity.getType() == BaseEntityTypeConstants.DoubleType) { | |||||
| } else if (entity.getType() == BaseEntityTypeConstants.DOUBLE_TYPE) { | |||||
| createDoubleCell(row, cellNum++, value == null ? "" : value.toString(), | createDoubleCell(row, cellNum++, value == null ? "" : value.toString(), | ||||
| index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), entity); | index % 2 == 0 ? getStyles(false, entity) : getStyles(true, entity), entity); | ||||
| if (entity.isHyperlink()) { | if (entity.isHyperlink()) { | ||||
| @@ -257,13 +255,13 @@ public abstract class ExportBaseServer extends ExportCommonServer { | |||||
| cell.setCellValue(Double.parseDouble(text)); | cell.setCellValue(Double.parseDouble(text)); | ||||
| cell.setCellType(Cell.CELL_TYPE_NUMERIC); | cell.setCellType(Cell.CELL_TYPE_NUMERIC); | ||||
| } else { | } else { | ||||
| RichTextString Rtext; | |||||
| RichTextString rtext; | |||||
| if (type.equals(ExcelType.HSSF)) { | if (type.equals(ExcelType.HSSF)) { | ||||
| Rtext = new HSSFRichTextString(text); | |||||
| rtext = new HSSFRichTextString(text); | |||||
| } else { | } else { | ||||
| Rtext = new XSSFRichTextString(text); | |||||
| rtext = new XSSFRichTextString(text); | |||||
| } | } | ||||
| cell.setCellValue(Rtext); | |||||
| cell.setCellValue(rtext); | |||||
| } | } | ||||
| if (style != null) { | if (style != null) { | ||||
| cell.setCellStyle(style); | cell.setCellStyle(style); | ||||
| @@ -330,9 +328,9 @@ public abstract class ExportBaseServer extends ExportCommonServer { | |||||
| */ | */ | ||||
| public int getImageType(byte[] value) { | public int getImageType(byte[] value) { | ||||
| String type = PoiPublicUtil.getFileExtendName(value); | String type = PoiPublicUtil.getFileExtendName(value); | ||||
| if (type.equalsIgnoreCase("JPG")) { | |||||
| if ("JPG".equalsIgnoreCase(type)) { | |||||
| return Workbook.PICTURE_TYPE_JPEG; | return Workbook.PICTURE_TYPE_JPEG; | ||||
| } else if (type.equalsIgnoreCase("PNG")) { | |||||
| } else if ("PNG".equalsIgnoreCase(type)) { | |||||
| return Workbook.PICTURE_TYPE_PNG; | return Workbook.PICTURE_TYPE_PNG; | ||||
| } | } | ||||
| @@ -47,7 +47,7 @@ import cn.afterturn.easypoi.excel.entity.TemplateExportParams; | |||||
| import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; | import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; | ||||
| import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; | import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; | ||||
| import cn.afterturn.easypoi.excel.entity.params.ExcelForEachParams; | import cn.afterturn.easypoi.excel.entity.params.ExcelForEachParams; | ||||
| import cn.afterturn.easypoi.excel.export.base.ExportBaseServer; | |||||
| import cn.afterturn.easypoi.excel.export.base.BaseExportServer; | |||||
| import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler; | import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler; | ||||
| import cn.afterturn.easypoi.excel.export.template.TemplateSumHanlder.TemplateSumEntity; | import cn.afterturn.easypoi.excel.export.template.TemplateSumHanlder.TemplateSumEntity; | ||||
| import cn.afterturn.easypoi.excel.html.helper.MergedRegionHelper; | import cn.afterturn.easypoi.excel.html.helper.MergedRegionHelper; | ||||
| @@ -64,7 +64,7 @@ import cn.afterturn.easypoi.util.PoiSheetUtility; | |||||
| * 2013-10-17 | * 2013-10-17 | ||||
| * @version 1.0 | * @version 1.0 | ||||
| */ | */ | ||||
| public final class ExcelExportOfTemplateUtil extends ExportBaseServer { | |||||
| public final class ExcelExportOfTemplateUtil extends BaseExportServer { | |||||
| private static final Logger LOGGER = LoggerFactory | private static final Logger LOGGER = LoggerFactory | ||||
| .getLogger(ExcelExportOfTemplateUtil.class); | .getLogger(ExcelExportOfTemplateUtil.class); | ||||
| @@ -517,8 +517,9 @@ public final class ExcelExportOfTemplateUtil extends ExportBaseServer { | |||||
| : getStyles(true, | : getStyles(true, | ||||
| size >= j - columnIndex ? null : columns.get(j - columnIndex)); | size >= j - columnIndex ? null : columns.get(j - columnIndex)); | ||||
| //返回的styler不为空时才使用,否则使用Excel设置的,更加推荐Excel设置的样式 | //返回的styler不为空时才使用,否则使用Excel设置的,更加推荐Excel设置的样式 | ||||
| if (style != null) | |||||
| if (style != null) { | |||||
| row.getCell(j).setCellStyle(style); | row.getCell(j).setCellStyle(style); | ||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -78,8 +78,9 @@ public class TemplateSumHanlder { | |||||
| } | } | ||||
| public void addValueOfKey(String key, String val) { | public void addValueOfKey(String key, String val) { | ||||
| if (StringUtils.isNoneEmpty(key)) | |||||
| if (StringUtils.isNoneEmpty(key)) { | |||||
| sumMap.get(key).setValue(sumMap.get(key).getValue() + Double.valueOf(val)); | sumMap.get(key).setValue(sumMap.get(key).getValue() + Double.valueOf(val)); | ||||
| } | |||||
| } | } | ||||
| public List<TemplateSumEntity> getDataList() { | public List<TemplateSumEntity> getDataList() { | ||||
| @@ -88,7 +88,7 @@ public class ExcelChartBuildService | |||||
| ExcelGraphElement categoryElement=graph.getCategory(); | ExcelGraphElement categoryElement=graph.getCategory(); | ||||
| ChartDataSource categoryChart; | ChartDataSource categoryChart; | ||||
| if(categoryElement!=null&&categoryElement.getElementType()==ExcelGraphElementType.StringType){ | |||||
| if(categoryElement!=null&& categoryElement.getElementType().equals(ExcelGraphElementType.STRING_TYPE)){ | |||||
| categoryChart=DataSources.fromStringCellRange(dataSourceSheet, new CellRangeAddress(categoryElement.getStartRowNum(),categoryElement.getEndRowNum(),categoryElement.getStartColNum(),categoryElement.getEndColNum())); | categoryChart=DataSources.fromStringCellRange(dataSourceSheet, new CellRangeAddress(categoryElement.getStartRowNum(),categoryElement.getEndRowNum(),categoryElement.getStartColNum(),categoryElement.getEndColNum())); | ||||
| }else{ | }else{ | ||||
| categoryChart=DataSources.fromNumericCellRange(dataSourceSheet, new CellRangeAddress(categoryElement.getStartRowNum(),categoryElement.getEndRowNum(),categoryElement.getStartColNum(),categoryElement.getEndColNum())); | categoryChart=DataSources.fromNumericCellRange(dataSourceSheet, new CellRangeAddress(categoryElement.getStartRowNum(),categoryElement.getEndRowNum(),categoryElement.getStartColNum(),categoryElement.getEndColNum())); | ||||
| @@ -103,7 +103,7 @@ public class ExcelChartBuildService | |||||
| } | } | ||||
| } | } | ||||
| if(graph.getGraphType()==ExcelGraphType.LineChart){ | |||||
| if(graph.getGraphType().equals(ExcelGraphType.LINE_CHART)){ | |||||
| LineChartData data = chart.getChartDataFactory().createLineChartData(); | LineChartData data = chart.getChartDataFactory().createLineChartData(); | ||||
| buildLineChartData(data, categoryChart, chartValueList, graph.getTitle()); | buildLineChartData(data, categoryChart, chartValueList, graph.getTitle()); | ||||
| chart.plot(data, bottomAxis, leftAxis); | chart.plot(data, bottomAxis, leftAxis); | ||||
| @@ -220,8 +220,8 @@ public class ExcelChartBuildService | |||||
| { | { | ||||
| int i=0; | int i=0; | ||||
| for(ChartDataSource<Number> source:chartValueList){ | for(ChartDataSource<Number> source:chartValueList){ | ||||
| String _title=title.get(i); | |||||
| if(StringUtils.isNotBlank(_title)){ | |||||
| String temp_title=title.get(i); | |||||
| if(StringUtils.isNotBlank(temp_title)){ | |||||
| //data.addSerie(categoryChart, source).setTitle(_title); | //data.addSerie(categoryChart, source).setTitle(_title); | ||||
| }else{ | }else{ | ||||
| //data.addSerie(categoryChart, source); | //data.addSerie(categoryChart, source); | ||||
| @@ -249,9 +249,9 @@ public class ExcelChartBuildService | |||||
| { | { | ||||
| int i=0; | int i=0; | ||||
| for(ChartDataSource<Number> source:chartValueList){ | for(ChartDataSource<Number> source:chartValueList){ | ||||
| String _title=title.get(i); | |||||
| if(StringUtils.isNotBlank(_title)){ | |||||
| data.addSerie(categoryChart, source).setTitle(_title); | |||||
| String temp_title=title.get(i); | |||||
| if(StringUtils.isNotBlank(temp_title)){ | |||||
| data.addSerie(categoryChart, source).setTitle(temp_title); | |||||
| }else{ | }else{ | ||||
| data.addSerie(categoryChart, source); | data.addSerie(categoryChart, source); | ||||
| } | } | ||||
| @@ -11,6 +11,6 @@ package cn.afterturn.easypoi.excel.graph.constant; | |||||
| */ | */ | ||||
| public interface ExcelGraphElementType | public interface ExcelGraphElementType | ||||
| { | { | ||||
| public static final Integer StringType=1; | |||||
| public static final Integer NumericType=2; | |||||
| public static final Integer STRING_TYPE =1; | |||||
| public static final Integer NUMERIC_TYPE =2; | |||||
| } | } | ||||
| @@ -11,7 +11,7 @@ package cn.afterturn.easypoi.excel.graph.constant; | |||||
| */ | */ | ||||
| public interface ExcelGraphType | public interface ExcelGraphType | ||||
| { | { | ||||
| public static final Integer LineChart=1; | |||||
| public static final Integer ScatterChart=2; | |||||
| public static final Integer LINE_CHART =1; | |||||
| public static final Integer SCATTER_CHART =2; | |||||
| } | } | ||||
| @@ -20,10 +20,11 @@ public class ExcelGraphDefined implements ExcelGraph | |||||
| private ExcelGraphElement category; | private ExcelGraphElement category; | ||||
| public List<ExcelGraphElement> valueList=Lists.newArrayList(); | public List<ExcelGraphElement> valueList=Lists.newArrayList(); | ||||
| public List<ExcelTitleCell> titleCell=Lists.newArrayList(); | public List<ExcelTitleCell> titleCell=Lists.newArrayList(); | ||||
| private Integer graphType=ExcelGraphType.LineChart; | |||||
| private Integer graphType=ExcelGraphType.LINE_CHART; | |||||
| public List<String> title=Lists.newArrayList(); | public List<String> title=Lists.newArrayList(); | ||||
| public ExcelGraphElement getCategory() | |||||
| @Override | |||||
| public ExcelGraphElement getCategory() | |||||
| { | { | ||||
| return category; | return category; | ||||
| } | } | ||||
| @@ -31,7 +32,8 @@ public class ExcelGraphDefined implements ExcelGraph | |||||
| { | { | ||||
| this.category = category; | this.category = category; | ||||
| } | } | ||||
| public List<ExcelGraphElement> getValueList() | |||||
| @Override | |||||
| public List<ExcelGraphElement> getValueList() | |||||
| { | { | ||||
| return valueList; | return valueList; | ||||
| } | } | ||||
| @@ -40,7 +42,8 @@ public class ExcelGraphDefined implements ExcelGraph | |||||
| this.valueList = valueList; | this.valueList = valueList; | ||||
| } | } | ||||
| public Integer getGraphType() | |||||
| @Override | |||||
| public Integer getGraphType() | |||||
| { | { | ||||
| return graphType; | return graphType; | ||||
| } | } | ||||
| @@ -48,7 +51,8 @@ public class ExcelGraphDefined implements ExcelGraph | |||||
| { | { | ||||
| this.graphType = graphType; | this.graphType = graphType; | ||||
| } | } | ||||
| public List<ExcelTitleCell> getTitleCell() | |||||
| @Override | |||||
| public List<ExcelTitleCell> getTitleCell() | |||||
| { | { | ||||
| return titleCell; | return titleCell; | ||||
| } | } | ||||
| @@ -56,7 +60,8 @@ public class ExcelGraphDefined implements ExcelGraph | |||||
| { | { | ||||
| this.titleCell = titleCell; | this.titleCell = titleCell; | ||||
| } | } | ||||
| public List<String> getTitle() | |||||
| @Override | |||||
| public List<String> getTitle() | |||||
| { | { | ||||
| return title; | return title; | ||||
| } | } | ||||
| @@ -18,7 +18,7 @@ public class ExcelGraphElement | |||||
| private Integer endRowNum; | private Integer endRowNum; | ||||
| private Integer startColNum; | private Integer startColNum; | ||||
| private Integer endColNum; | private Integer endColNum; | ||||
| private Integer elementType=ExcelGraphElementType.StringType; | |||||
| private Integer elementType=ExcelGraphElementType.STRING_TYPE; | |||||
| public Integer getStartRowNum() | public Integer getStartRowNum() | ||||
| @@ -71,7 +71,7 @@ public class ExcelToHtmlServer { | |||||
| this.sheetNum = params.getSheetNum(); | this.sheetNum = params.getSheetNum(); | ||||
| cssRandom = (int) Math.ceil(Math.random() * 1000); | cssRandom = (int) Math.ceil(Math.random() * 1000); | ||||
| this.imageCachePath = params.getPath(); | this.imageCachePath = params.getPath(); | ||||
| today = DATE_FORMAT.format(new Date()); | |||||
| today = new SimpleDateFormat("yyyy_MM_dd").format(new Date()); | |||||
| } | } | ||||
| public String printPage() { | public String printPage() { | ||||
| @@ -101,8 +101,9 @@ public class ExcelToHtmlServer { | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| LOGGER.error(e.getMessage(), e); | LOGGER.error(e.getMessage(), e); | ||||
| } finally { | } finally { | ||||
| if (out != null) | |||||
| if (out != null) { | |||||
| out.close(); | out.close(); | ||||
| } | |||||
| } | } | ||||
| return null; | return null; | ||||
| } | } | ||||
| @@ -125,8 +126,9 @@ public class ExcelToHtmlServer { | |||||
| } | } | ||||
| private void ensureOut() { | private void ensureOut() { | ||||
| if (out == null) | |||||
| if (out == null) { | |||||
| out = new Formatter(new StringBuilder()); | out = new Formatter(new StringBuilder()); | ||||
| } | |||||
| } | } | ||||
| private void printSheets() { | private void printSheets() { | ||||
| @@ -159,8 +161,9 @@ public class ExcelToHtmlServer { | |||||
| } | } | ||||
| private void ensureColumnBounds(Sheet sheet) { | private void ensureColumnBounds(Sheet sheet) { | ||||
| if (gotBounds) | |||||
| if (gotBounds) { | |||||
| return; | return; | ||||
| } | |||||
| Iterator<Row> iter = sheet.rowIterator(); | Iterator<Row> iter = sheet.rowIterator(); | ||||
| firstColumn = (iter.hasNext() ? Integer.MAX_VALUE : 0); | firstColumn = (iter.hasNext() ? Integer.MAX_VALUE : 0); | ||||
| @@ -301,8 +304,9 @@ public class ExcelToHtmlServer { | |||||
| } | } | ||||
| private String styleName(CellStyle style) { | private String styleName(CellStyle style) { | ||||
| if (style == null) | |||||
| if (style == null) { | |||||
| return ""; | return ""; | ||||
| } | |||||
| return String.format("style_%02x_%s font_%s_%s", style.getIndex(), cssRandom, | return String.format("style_%02x_%s font_%s_%s", style.getIndex(), cssRandom, | ||||
| style.getFontIndex(), cssRandom); | style.getFontIndex(), cssRandom); | ||||
| } | } | ||||
| @@ -28,6 +28,9 @@ public class CssParseServer { | |||||
| private static final Logger log = LoggerFactory.getLogger(CssParseServer.class); | private static final Logger log = LoggerFactory.getLogger(CssParseServer.class); | ||||
| private static final Pattern STYLE_PATTERN = Pattern.compile("(?:^|\\s+)(italic|oblique)(?:\\s+|$)"); | |||||
| private static final Pattern WEIGHT_PATTERN = Pattern.compile("(?:^|\\s+)(bold(?:er)?|[7-9]00)(?:\\s+|$)"); | |||||
| @SuppressWarnings("serial") | @SuppressWarnings("serial") | ||||
| private final static Set<String> BORDER_STYLES = new HashSet<String>() { | private final static Set<String> BORDER_STYLES = new HashSet<String>() { | ||||
| { | { | ||||
| @@ -193,8 +196,7 @@ public class CssParseServer { | |||||
| font.replaceAll("^|\\s*" + StringUtils.join(ignoreStyles, "|") + "\\s+|$", " ")); | font.replaceAll("^|\\s*" + StringUtils.join(ignoreStyles, "|") + "\\s+|$", " ")); | ||||
| log.debug("Font Attr [{}] After Process Ingore.", sbFont); | log.debug("Font Attr [{}] After Process Ingore.", sbFont); | ||||
| // style | // style | ||||
| Matcher m = Pattern.compile("(?:^|\\s+)(italic|oblique)(?:\\s+|$)") | |||||
| .matcher(sbFont.toString()); | |||||
| Matcher m = STYLE_PATTERN.matcher(sbFont.toString()); | |||||
| if (m.find()) { | if (m.find()) { | ||||
| sbFont.setLength(0); | sbFont.setLength(0); | ||||
| if (log.isDebugEnabled()) { | if (log.isDebugEnabled()) { | ||||
| @@ -205,8 +207,7 @@ public class CssParseServer { | |||||
| m.appendTail(sbFont); | m.appendTail(sbFont); | ||||
| } | } | ||||
| // weight | // weight | ||||
| m = Pattern.compile("(?:^|\\s+)(bold(?:er)?|[7-9]00)(?:\\s+|$)") | |||||
| .matcher(sbFont.toString()); | |||||
| m = WEIGHT_PATTERN.matcher(sbFont.toString()); | |||||
| if (m.find()) { | if (m.find()) { | ||||
| sbFont.setLength(0); | sbFont.setLength(0); | ||||
| if (log.isDebugEnabled()) { | if (log.isDebugEnabled()) { | ||||
| @@ -31,14 +31,15 @@ public class CellValueHelper { | |||||
| public CellValueHelper(Workbook wb, int cssRandom) { | public CellValueHelper(Workbook wb, int cssRandom) { | ||||
| this.cssRandom = cssRandom; | this.cssRandom = cssRandom; | ||||
| if (wb instanceof HSSFWorkbook) | |||||
| if (wb instanceof HSSFWorkbook) { | |||||
| is07 = false; | is07 = false; | ||||
| else if (wb instanceof XSSFWorkbook) { | |||||
| }else if (wb instanceof XSSFWorkbook) { | |||||
| is07 = true; | is07 = true; | ||||
| cacheFontInfo(wb); | cacheFontInfo(wb); | ||||
| } else | |||||
| } else { | |||||
| throw new IllegalArgumentException( | throw new IllegalArgumentException( | ||||
| "unknown workbook type: " + wb.getClass().getSimpleName()); | |||||
| "unknown workbook type: " + wb.getClass().getSimpleName()); | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -69,13 +69,14 @@ public class StylerHelper { | |||||
| this.out = out; | this.out = out; | ||||
| this.sheetNum = sheetNum; | this.sheetNum = sheetNum; | ||||
| this.cssRandom = cssRandom; | this.cssRandom = cssRandom; | ||||
| if (wb instanceof HSSFWorkbook) | |||||
| if (wb instanceof HSSFWorkbook) { | |||||
| helper = new HSSFHtmlHelper((HSSFWorkbook) wb); | helper = new HSSFHtmlHelper((HSSFWorkbook) wb); | ||||
| else if (wb instanceof XSSFWorkbook) | |||||
| } else if (wb instanceof XSSFWorkbook) { | |||||
| helper = new XSSFHtmlHelper((XSSFWorkbook) wb); | helper = new XSSFHtmlHelper((XSSFWorkbook) wb); | ||||
| else | |||||
| } else { | |||||
| throw new IllegalArgumentException( | throw new IllegalArgumentException( | ||||
| "unknown workbook type: " + wb.getClass().getSimpleName()); | |||||
| "unknown workbook type: " + wb.getClass().getSimpleName()); | |||||
| } | |||||
| printInlineStyle(wb); | printInlineStyle(wb); | ||||
| } | } | ||||
| @@ -157,10 +158,12 @@ public class StylerHelper { | |||||
| } | } | ||||
| private void fontStyle(Font font) { | private void fontStyle(Font font) { | ||||
| if (font.getBoldweight() >= Font.BOLDWEIGHT_BOLD) | |||||
| if (font.getBoldweight() >= Font.BOLDWEIGHT_BOLD) { | |||||
| out.format(" font-weight: bold;%n"); | out.format(" font-weight: bold;%n"); | ||||
| if (font.getItalic()) | |||||
| } | |||||
| if (font.getItalic()) { | |||||
| out.format(" font-style: italic;%n"); | out.format(" font-style: italic;%n"); | ||||
| } | |||||
| out.format(" font-family: %s;%n", font.getFontName()); | out.format(" font-family: %s;%n", font.getFontName()); | ||||
| int fontheight = font.getFontHeightInPoints(); | int fontheight = font.getFontHeightInPoints(); | ||||
| @@ -181,8 +184,9 @@ public class StylerHelper { | |||||
| } | } | ||||
| private String styleName(CellStyle style) { | private String styleName(CellStyle style) { | ||||
| if (style == null) | |||||
| if (style == null) { | |||||
| return ""; | return ""; | ||||
| } | |||||
| return String.format("style_%02x_%s", style.getIndex(), cssRandom); | return String.format("style_%02x_%s", style.getIndex(), cssRandom); | ||||
| } | } | ||||
| @@ -209,13 +213,14 @@ public class StylerHelper { | |||||
| private final HSSFWorkbook wb; | private final HSSFWorkbook wb; | ||||
| private final HSSFPalette colors; | private final HSSFPalette colors; | ||||
| private HSSFColor HSSF_AUTO = new HSSFColor.AUTOMATIC(); | |||||
| private HSSFColor hssfAuto = new HSSFColor.AUTOMATIC(); | |||||
| public HSSFHtmlHelper(HSSFWorkbook wb) { | public HSSFHtmlHelper(HSSFWorkbook wb) { | ||||
| this.wb = wb; | this.wb = wb; | ||||
| colors = wb.getCustomPalette(); | colors = wb.getCustomPalette(); | ||||
| } | } | ||||
| @Override | |||||
| public void colorStyles(CellStyle style, Formatter out) { | public void colorStyles(CellStyle style, Formatter out) { | ||||
| HSSFCellStyle cs = (HSSFCellStyle) style; | HSSFCellStyle cs = (HSSFCellStyle) style; | ||||
| out.format(" /* fill pattern = %d */%n", cs.getFillPattern()); | out.format(" /* fill pattern = %d */%n", cs.getFillPattern()); | ||||
| @@ -225,7 +230,7 @@ public class StylerHelper { | |||||
| private void styleColor(Formatter out, String attr, short index) { | private void styleColor(Formatter out, String attr, short index) { | ||||
| HSSFColor color = colors.getColor(index); | HSSFColor color = colors.getColor(index); | ||||
| if (index == HSSF_AUTO.getIndex() || color == null) { | |||||
| if (index == hssfAuto.getIndex() || color == null) { | |||||
| out.format(" /* %s: index = %d */%n", attr, index); | out.format(" /* %s: index = %d */%n", attr, index); | ||||
| } else { | } else { | ||||
| short[] rgb = color.getTriplet(); | short[] rgb = color.getTriplet(); | ||||
| @@ -234,6 +239,7 @@ public class StylerHelper { | |||||
| } | } | ||||
| } | } | ||||
| @Override | |||||
| public void styleColor(Formatter out, String attr, Color color) { | public void styleColor(Formatter out, String attr, Color color) { | ||||
| if (color == null) { | if (color == null) { | ||||
| return; | return; | ||||
| @@ -254,16 +260,19 @@ public class StylerHelper { | |||||
| public XSSFHtmlHelper(XSSFWorkbook wb) { | public XSSFHtmlHelper(XSSFWorkbook wb) { | ||||
| } | } | ||||
| @Override | |||||
| public void colorStyles(CellStyle style, Formatter out) { | public void colorStyles(CellStyle style, Formatter out) { | ||||
| XSSFCellStyle cs = (XSSFCellStyle) style; | XSSFCellStyle cs = (XSSFCellStyle) style; | ||||
| styleColor(out, "background-color", cs.getFillForegroundXSSFColor()); | styleColor(out, "background-color", cs.getFillForegroundXSSFColor()); | ||||
| styleColor(out, "color", cs.getFont().getXSSFColor()); | styleColor(out, "color", cs.getFont().getXSSFColor()); | ||||
| } | } | ||||
| @Override | |||||
| public void styleColor(Formatter out, String attr, Color color) { | public void styleColor(Formatter out, String attr, Color color) { | ||||
| XSSFColor xSSFColor = (XSSFColor) color; | XSSFColor xSSFColor = (XSSFColor) color; | ||||
| if (color == null || xSSFColor.isAuto()) | |||||
| if (color == null || xSSFColor.isAuto()) { | |||||
| return; | return; | ||||
| } | |||||
| byte[] rgb = xSSFColor.getRGB(); | byte[] rgb = xSSFColor.getRGB(); | ||||
| if (rgb == null) { | if (rgb == null) { | ||||
| @@ -142,7 +142,7 @@ public class ExcelImportServer extends ImportBaseService { | |||||
| */ | */ | ||||
| private String getSaveUrl(ExcelImportEntity excelImportEntity, Object object) throws Exception { | private String getSaveUrl(ExcelImportEntity excelImportEntity, Object object) throws Exception { | ||||
| String url = ""; | String url = ""; | ||||
| if (excelImportEntity.getSaveUrl().equals("upload")) { | |||||
| if ("upload".equals(excelImportEntity.getSaveUrl())) { | |||||
| if (excelImportEntity.getMethods() != null | if (excelImportEntity.getMethods() != null | ||||
| && excelImportEntity.getMethods().size() > 0) { | && excelImportEntity.getMethods().size() > 0) { | ||||
| object = getFieldBySomeMethod(excelImportEntity.getMethods(), object); | object = getFieldBySomeMethod(excelImportEntity.getMethods(), object); | ||||
| @@ -162,7 +162,7 @@ public class ExcelImportServer extends ImportBaseService { | |||||
| List<ExcelCollectionParams> excelCollection = new ArrayList<ExcelCollectionParams>(); | List<ExcelCollectionParams> excelCollection = new ArrayList<ExcelCollectionParams>(); | ||||
| String targetId = null; | String targetId = null; | ||||
| if (!Map.class.equals(pojoClass)) { | if (!Map.class.equals(pojoClass)) { | ||||
| Field fileds[] = PoiPublicUtil.getClassFields(pojoClass); | |||||
| Field[] fileds = PoiPublicUtil.getClassFields(pojoClass); | |||||
| ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); | ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); | ||||
| if (etarget != null) { | if (etarget != null) { | ||||
| targetId = etarget.value(); | targetId = etarget.value(); | ||||
| @@ -267,8 +267,9 @@ public class ExcelImportServer extends ImportBaseService { | |||||
| if (params.getVerifyHanlder() != null) { | if (params.getVerifyHanlder() != null) { | ||||
| ExcelVerifyHanlderResult result = params.getVerifyHanlder().verifyHandler(object); | ExcelVerifyHanlderResult result = params.getVerifyHanlder().verifyHandler(object); | ||||
| if (!result.isSuccess()) { | if (!result.isSuccess()) { | ||||
| if (cell == null) | |||||
| if (cell == null) { | |||||
| cell = row.createCell(row.getLastCellNum()); | cell = row.createCell(row.getLastCellNum()); | ||||
| } | |||||
| cell.setCellValue((StringUtils.isNoneBlank(cell.getStringCellValue()) | cell.setCellValue((StringUtils.isNoneBlank(cell.getStringCellValue()) | ||||
| ? cell.getStringCellValue() + "," : "") + result.getMsg()); | ? cell.getStringCellValue() + "," : "") + result.getMsg()); | ||||
| if (object instanceof IExcelModel) { | if (object instanceof IExcelModel) { | ||||
| @@ -372,7 +373,7 @@ public class ExcelImportServer extends ImportBaseService { | |||||
| for (int i = params.getStartSheetIndex(); i < params.getStartSheetIndex() | for (int i = params.getStartSheetIndex(); i < params.getStartSheetIndex() | ||||
| + params.getSheetNum(); i++) { | + params.getSheetNum(); i++) { | ||||
| if (LOGGER.isDebugEnabled()) { | if (LOGGER.isDebugEnabled()) { | ||||
| LOGGER.debug(" start to read excel by is ,startTime is {}", new Date().getTime()); | |||||
| LOGGER.debug(" start to read excel by is ,startTime is {}", System.currentTimeMillis()); | |||||
| } | } | ||||
| if (isXSSFWorkbook) { | if (isXSSFWorkbook) { | ||||
| pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(i), | pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(i), | ||||
| @@ -382,16 +383,16 @@ public class ExcelImportServer extends ImportBaseService { | |||||
| (HSSFWorkbook) book); | (HSSFWorkbook) book); | ||||
| } | } | ||||
| if (LOGGER.isDebugEnabled()) { | if (LOGGER.isDebugEnabled()) { | ||||
| LOGGER.debug(" end to read excel by is ,endTime is {}", new Date().getTime()); | |||||
| LOGGER.debug(" end to read excel by is ,endTime is {}", System.currentTimeMillis()); | |||||
| } | } | ||||
| result.addAll(importExcel(result, book.getSheetAt(i), pojoClass, params, pictures)); | result.addAll(importExcel(result, book.getSheetAt(i), pojoClass, params, pictures)); | ||||
| if (LOGGER.isDebugEnabled()) { | if (LOGGER.isDebugEnabled()) { | ||||
| LOGGER.debug(" end to read excel list by pos ,endTime is {}", new Date().getTime()); | |||||
| LOGGER.debug(" end to read excel list by pos ,endTime is {}", System.currentTimeMillis()); | |||||
| } | } | ||||
| if (params.isReadSingleCell()) { | if (params.isReadSingleCell()) { | ||||
| readSingleCell(importResult, book.getSheetAt(i), params); | readSingleCell(importResult, book.getSheetAt(i), params); | ||||
| if (LOGGER.isDebugEnabled()) { | if (LOGGER.isDebugEnabled()) { | ||||
| LOGGER.debug(" read Key-Value ,endTime is {}", new Date().getTime()); | |||||
| LOGGER.debug(" read Key-Value ,endTime is {}", System.currentTimeMillis()); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -222,7 +222,7 @@ public class ImportBaseService { | |||||
| */ | */ | ||||
| public String getSaveExcelUrl(ImportParams params, Class<?> pojoClass) throws Exception { | public String getSaveExcelUrl(ImportParams params, Class<?> pojoClass) throws Exception { | ||||
| String url = ""; | String url = ""; | ||||
| if (params.getSaveUrl().equals("upload/excelUpload")) { | |||||
| if ("upload/excelUpload".equals(params.getSaveUrl())) { | |||||
| url = pojoClass.getName().split("\\.")[pojoClass.getName().split("\\.").length - 1]; | url = pojoClass.getName().split("\\.")[pojoClass.getName().split("\\.").length - 1]; | ||||
| return params.getSaveUrl() + "/" + url; | return params.getSaveUrl() + "/" + url; | ||||
| } | } | ||||
| @@ -108,7 +108,7 @@ public class SheetHandler extends DefaultHandler { | |||||
| // 将单元格内容加入rowlist中,在这之前先去掉字符串前后的空白符 | // 将单元格内容加入rowlist中,在这之前先去掉字符串前后的空白符 | ||||
| } else if ("v".equals(name)) { | } else if ("v".equals(name)) { | ||||
| String value = lastContents.trim(); | String value = lastContents.trim(); | ||||
| value = value.equals("") ? " " : value; | |||||
| value = "".equals(value) ? " " : value; | |||||
| if (CellValueType.Date.equals(type)) { | if (CellValueType.Date.equals(type)) { | ||||
| Date date = HSSFDateUtil.getJavaDate(Double.valueOf(value)); | Date date = HSSFDateUtil.getJavaDate(Double.valueOf(value)); | ||||
| rowlist.add(curCol, new SaxReadCellEntity(CellValueType.Date, date)); | rowlist.add(curCol, new SaxReadCellEntity(CellValueType.Date, date)); | ||||
| @@ -119,7 +119,7 @@ public class SheetHandler extends DefaultHandler { | |||||
| rowlist.add(curCol, new SaxReadCellEntity(CellValueType.String, value)); | rowlist.add(curCol, new SaxReadCellEntity(CellValueType.String, value)); | ||||
| } | } | ||||
| curCol++; | curCol++; | ||||
| } else if (name.equals("row")) {//如果标签名称为 row ,这说明已到行尾,调用 optRows() 方法 | |||||
| } else if ("row".equals(name)) {//如果标签名称为 row ,这说明已到行尾,调用 optRows() 方法 | |||||
| read.parse(curRow, rowlist); | read.parse(curRow, rowlist); | ||||
| rowlist.clear(); | rowlist.clear(); | ||||
| curRow++; | curRow++; | ||||
| @@ -83,7 +83,7 @@ public class SaxRowRead extends ImportBaseService implements ISaxRowRead { | |||||
| private void initParams(Class<?> pojoClass, ImportParams params) { | private void initParams(Class<?> pojoClass, ImportParams params) { | ||||
| try { | try { | ||||
| Field fileds[] = PoiPublicUtil.getClassFields(pojoClass); | |||||
| Field[] fileds = PoiPublicUtil.getClassFields(pojoClass); | |||||
| ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); | ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); | ||||
| if (etarget != null) { | if (etarget != null) { | ||||
| targetId = etarget.value(); | targetId = etarget.value(); | ||||
| @@ -87,7 +87,7 @@ public class PdfExportServer extends ExportCommonServer { | |||||
| //excelParams.add(indexExcelEntity(entity)); | //excelParams.add(indexExcelEntity(entity)); | ||||
| } | } | ||||
| // 得到所有字段 | // 得到所有字段 | ||||
| Field fileds[] = PoiPublicUtil.getClassFields(pojoClass); | |||||
| Field[] fileds = PoiPublicUtil.getClassFields(pojoClass); | |||||
| ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); | ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); | ||||
| String targetId = etarget == null ? null : etarget.value(); | String targetId = etarget == null ? null : etarget.value(); | ||||
| getAllExcelField(entity.getExclusions(), targetId, fileds, excelParams, pojoClass, | getAllExcelField(entity.getExclusions(), targetId, fileds, excelParams, pojoClass, | ||||
| @@ -100,8 +100,9 @@ public class PoiCellUtil { | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| public static String getCellValue(Cell cell) { | public static String getCellValue(Cell cell) { | ||||
| if (cell == null) | |||||
| if (cell == null) { | |||||
| return ""; | return ""; | ||||
| } | |||||
| if (cell.getCellType() == Cell.CELL_TYPE_STRING) { | if (cell.getCellType() == Cell.CELL_TYPE_STRING) { | ||||
| @@ -27,6 +27,11 @@ public class PoiCssUtils { | |||||
| private static final String COLOR_PATTERN_VALUE_LONG = "^(#(?:[a-f]|\\d{2}){3})$"; | private static final String COLOR_PATTERN_VALUE_LONG = "^(#(?:[a-f]|\\d{2}){3})$"; | ||||
| // matches #rgb(r, g, b) | // matches #rgb(r, g, b) | ||||
| private static final String COLOR_PATTERN_RGB = "^(rgb\\s*\\(\\s*(.+)\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\))$"; | private static final String COLOR_PATTERN_RGB = "^(rgb\\s*\\(\\s*(.+)\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\))$"; | ||||
| private static final Pattern COLOR_PATTERN_VALUE_SHORT_PATTERN = Pattern.compile("([a-f]|\\d)"); | |||||
| private static final Pattern INT_PATTERN = Pattern.compile("^(\\d+)(?:\\w+|%)?$"); | |||||
| private static final Pattern INT_AND_PER_PATTERN = Pattern.compile("^(\\d*\\.?\\d+)\\s*(%)?$"); | |||||
| // color name -> POI Color | // color name -> POI Color | ||||
| private static Map<String, HSSFColor> colors = new HashMap<String, HSSFColor>(); | private static Map<String, HSSFColor> colors = new HashMap<String, HSSFColor>(); | ||||
| // static init | // static init | ||||
| @@ -67,7 +72,7 @@ public class PoiCssUtils { | |||||
| public static int getInt(String strValue) { | public static int getInt(String strValue) { | ||||
| int value = 0; | int value = 0; | ||||
| if (StringUtils.isNotBlank(strValue)) { | if (StringUtils.isNotBlank(strValue)) { | ||||
| Matcher m = Pattern.compile("^(\\d+)(?:\\w+|%)?$").matcher(strValue); | |||||
| Matcher m = INT_PATTERN.matcher(strValue); | |||||
| if (m.find()) { | if (m.find()) { | ||||
| value = Integer.parseInt(m.group(1)); | value = Integer.parseInt(m.group(1)); | ||||
| } | } | ||||
| @@ -98,7 +103,7 @@ public class PoiCssUtils { | |||||
| if (color.matches(COLOR_PATTERN_VALUE_SHORT)) { | if (color.matches(COLOR_PATTERN_VALUE_SHORT)) { | ||||
| log.debug("Short Hex Color [{}] Found.", color); | log.debug("Short Hex Color [{}] Found.", color); | ||||
| StringBuffer sbColor = new StringBuffer(); | StringBuffer sbColor = new StringBuffer(); | ||||
| Matcher m = Pattern.compile("([a-f]|\\d)").matcher(color); | |||||
| Matcher m = COLOR_PATTERN_VALUE_SHORT_PATTERN.matcher(color); | |||||
| while (m.find()) { | while (m.find()) { | ||||
| m.appendReplacement(sbColor, "$1$1"); | m.appendReplacement(sbColor, "$1$1"); | ||||
| } | } | ||||
| @@ -180,7 +185,7 @@ public class PoiCssUtils { | |||||
| public static int calcColorValue(String color) { | public static int calcColorValue(String color) { | ||||
| int rtn = 0; | int rtn = 0; | ||||
| // matches 64 or 64% | // matches 64 or 64% | ||||
| Matcher m = Pattern.compile("^(\\d*\\.?\\d+)\\s*(%)?$").matcher(color); | |||||
| Matcher m = INT_AND_PER_PATTERN.matcher(color); | |||||
| if (m.matches()) { | if (m.matches()) { | ||||
| // % not found | // % not found | ||||
| if (m.group(2) == null) { | if (m.group(2) == null) { | ||||
| @@ -103,11 +103,11 @@ public final class PoiFunctionUtil { | |||||
| } | } | ||||
| SimpleDateFormat dateFormat = null; | SimpleDateFormat dateFormat = null; | ||||
| if (DAY_STR.equals(format)) { | if (DAY_STR.equals(format)) { | ||||
| dateFormat = DAY_FORMAT; | |||||
| dateFormat = new SimpleDateFormat(DAY_STR); | |||||
| } else if (TIME_STR.equals(format)) { | } else if (TIME_STR.equals(format)) { | ||||
| dateFormat = TIME_FORMAT; | |||||
| dateFormat = new SimpleDateFormat(TIME_STR); | |||||
| } else if (TIME__NO_S_STR.equals(format)) { | } else if (TIME__NO_S_STR.equals(format)) { | ||||
| dateFormat = TIME__NO_S_FORMAT; | |||||
| dateFormat = new SimpleDateFormat(TIME__NO_S_STR); | |||||
| } else { | } else { | ||||
| dateFormat = new SimpleDateFormat(format); | dateFormat = new SimpleDateFormat(format); | ||||
| } | } | ||||
| @@ -251,10 +251,10 @@ public final class PoiPublicUtil { | |||||
| if (fieldType.isArray()) { | if (fieldType.isArray()) { | ||||
| isBaseClass = false; | isBaseClass = false; | ||||
| } else if (fieldType.isPrimitive() || fieldType.getPackage() == null | } else if (fieldType.isPrimitive() || fieldType.getPackage() == null | ||||
| || fieldType.getPackage().getName().equals("java.lang") | |||||
| || fieldType.getPackage().getName().equals("java.math") | |||||
| || fieldType.getPackage().getName().equals("java.sql") | |||||
| || fieldType.getPackage().getName().equals("java.util")) { | |||||
| || "java.lang".equals(fieldType.getPackage().getName()) | |||||
| || "java.math".equals(fieldType.getPackage().getName()) | |||||
| || "java.sql".equals(fieldType.getPackage().getName()) | |||||
| || "java.util".equals(fieldType.getPackage().getName())) { | |||||
| isBaseClass = true; | isBaseClass = true; | ||||
| } | } | ||||
| return isBaseClass; | return isBaseClass; | ||||
| @@ -300,21 +300,21 @@ public final class PoiPublicUtil { | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| private static boolean isUseInThis(String exportName, String targetId) { | private static boolean isUseInThis(String exportName, String targetId) { | ||||
| return targetId == null || exportName.equals("") || exportName.indexOf("_") < 0 | |||||
| return targetId == null || "".equals(exportName) || exportName.indexOf("_") < 0 | |||||
| || exportName.indexOf(targetId) != -1; | || exportName.indexOf(targetId) != -1; | ||||
| } | } | ||||
| private static Integer getImageType(String type) { | private static Integer getImageType(String type) { | ||||
| if (type.equalsIgnoreCase("JPG") || type.equalsIgnoreCase("JPEG")) { | |||||
| if ("JPG".equalsIgnoreCase(type) || "JPEG".equalsIgnoreCase(type)) { | |||||
| return XWPFDocument.PICTURE_TYPE_JPEG; | return XWPFDocument.PICTURE_TYPE_JPEG; | ||||
| } | } | ||||
| if (type.equalsIgnoreCase("GIF")) { | |||||
| if ("GIF".equalsIgnoreCase(type)) { | |||||
| return XWPFDocument.PICTURE_TYPE_GIF; | return XWPFDocument.PICTURE_TYPE_GIF; | ||||
| } | } | ||||
| if (type.equalsIgnoreCase("BMP")) { | |||||
| if ("BMP".equalsIgnoreCase(type)) { | |||||
| return XWPFDocument.PICTURE_TYPE_GIF; | return XWPFDocument.PICTURE_TYPE_GIF; | ||||
| } | } | ||||
| if (type.equalsIgnoreCase("PNG")) { | |||||
| if ("PNG".equalsIgnoreCase(type)) { | |||||
| return XWPFDocument.PICTURE_TYPE_PNG; | return XWPFDocument.PICTURE_TYPE_PNG; | ||||
| } | } | ||||
| return XWPFDocument.PICTURE_TYPE_JPEG; | return XWPFDocument.PICTURE_TYPE_JPEG; | ||||
| @@ -196,7 +196,7 @@ public final class PoiReflectorUtil { | |||||
| // Ignored. This is only a final precaution, nothing we can do. | // Ignored. This is only a final precaution, nothing we can do. | ||||
| } | } | ||||
| } | } | ||||
| if (field.isAccessible() && !field.getName().equalsIgnoreCase("serialVersionUID")) { | |||||
| if (field.isAccessible() && !"serialVersionUID".equalsIgnoreCase(field.getName())) { | |||||
| this.fieldList.add(field); | this.fieldList.add(field); | ||||
| } | } | ||||
| } | } | ||||
| @@ -40,21 +40,25 @@ public class PoiSheetUtility extends Object { | |||||
| Row row = sheet.getRow(r); | Row row = sheet.getRow(r); | ||||
| // if no row exists here; then nothing to do; next! | // if no row exists here; then nothing to do; next! | ||||
| if (row == null) | |||||
| if (row == null) { | |||||
| continue; | continue; | ||||
| } | |||||
| // if the row doesn't have this many columns then we are good; next! | // if the row doesn't have this many columns then we are good; next! | ||||
| int lastColumn = row.getLastCellNum(); | int lastColumn = row.getLastCellNum(); | ||||
| if (lastColumn > maxColumn) | |||||
| if (lastColumn > maxColumn) { | |||||
| maxColumn = lastColumn; | maxColumn = lastColumn; | ||||
| } | |||||
| if (lastColumn < columnToDelete) | |||||
| if (lastColumn < columnToDelete) { | |||||
| continue; | continue; | ||||
| } | |||||
| for (int x = columnToDelete + 1; x < lastColumn + 1; x++) { | for (int x = columnToDelete + 1; x < lastColumn + 1; x++) { | ||||
| Cell oldCell = row.getCell(x - 1); | Cell oldCell = row.getCell(x - 1); | ||||
| if (oldCell != null) | |||||
| if (oldCell != null) { | |||||
| row.removeCell(oldCell); | row.removeCell(oldCell); | ||||
| } | |||||
| Cell nextCell = row.getCell(x); | Cell nextCell = row.getCell(x); | ||||
| if (nextCell != null) { | if (nextCell != null) { | ||||
| @@ -99,6 +103,8 @@ public class PoiSheetUtility extends Object { | |||||
| cNew.setCellFormula(cOld.getCellFormula()); | cNew.setCellFormula(cOld.getCellFormula()); | ||||
| break; | break; | ||||
| } | } | ||||
| default: | |||||
| cNew.setCellValue(cOld.getStringCellValue()); | |||||
| } | } | ||||
| } | } | ||||
| @@ -29,19 +29,19 @@ import javax.validation.ValidatorFactory; | |||||
| */ | */ | ||||
| public class PoiValidationUtil { | public class PoiValidationUtil { | ||||
| private final static Validator validator; | |||||
| private final static Validator VALIDATOR; | |||||
| static { | static { | ||||
| ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); | ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); | ||||
| validator = factory.getValidator(); | |||||
| VALIDATOR = factory.getValidator(); | |||||
| } | } | ||||
| public static String validation(Object obj, Class[] verfiyGroup) { | public static String validation(Object obj, Class[] verfiyGroup) { | ||||
| Set<ConstraintViolation<Object>> set = null; | Set<ConstraintViolation<Object>> set = null; | ||||
| if(verfiyGroup != null){ | if(verfiyGroup != null){ | ||||
| set = validator.validate(obj,verfiyGroup); | |||||
| set = VALIDATOR.validate(obj,verfiyGroup); | |||||
| }else{ | }else{ | ||||
| set = validator.validate(obj); | |||||
| set = VALIDATOR.validate(obj); | |||||
| } | } | ||||
| if (set!= null && set.size() > 0) { | if (set!= null && set.size() > 0) { | ||||
| return getValidateErrMsg(set); | return getValidateErrMsg(set); | ||||
| @@ -73,9 +73,9 @@ public class MyXWPFDocument extends XWPFDocument { | |||||
| } | } | ||||
| public void createPicture(String blipId, int id, int width, int height) { | public void createPicture(String blipId, int id, int width, int height) { | ||||
| final int EMU = 9525; | |||||
| width *= EMU; | |||||
| height *= EMU; | |||||
| final int emu = 9525; | |||||
| width *= emu; | |||||
| height *= emu; | |||||
| CTInline inline = createParagraph().createRun().getCTR().addNewDrawing().addNewInline(); | CTInline inline = createParagraph().createRun().getCTR().addNewDrawing().addNewInline(); | ||||
| String picXml = String.format(PICXML, id, blipId, width, height); | String picXml = String.format(PICXML, id, blipId, width, height); | ||||
| XmlToken xmlToken = null; | XmlToken xmlToken = null; | ||||
| @@ -102,9 +102,9 @@ public class MyXWPFDocument extends XWPFDocument { | |||||
| } | } | ||||
| public void createPicture(XWPFRun run, String blipId, int id, int width, int height) { | public void createPicture(XWPFRun run, String blipId, int id, int width, int height) { | ||||
| final int EMU = 9525; | |||||
| width *= EMU; | |||||
| height *= EMU; | |||||
| final int emu = 9525; | |||||
| width *= emu; | |||||
| height *= emu; | |||||
| CTInline inline = run.getCTR().addNewDrawing().addNewInline(); | CTInline inline = run.getCTR().addNewDrawing().addNewInline(); | ||||
| String picXml = String.format(PICXML, id, blipId, width, height); | String picXml = String.format(PICXML, id, blipId, width, height); | ||||
| XmlToken xmlToken = null; | XmlToken xmlToken = null; | ||||
| @@ -171,7 +171,7 @@ public class ExcelEntityParse extends ExportCommonServer { | |||||
| Map<String, Integer> titlemap = getTitleMap(table, index, entity.getHeadRows()); | Map<String, Integer> titlemap = getTitleMap(table, index, entity.getHeadRows()); | ||||
| try { | try { | ||||
| // 得到所有字段 | // 得到所有字段 | ||||
| Field fileds[] = PoiPublicUtil.getClassFields(entity.getClazz()); | |||||
| Field[] fileds = PoiPublicUtil.getClassFields(entity.getClazz()); | |||||
| ExcelTarget etarget = entity.getClazz().getAnnotation(ExcelTarget.class); | ExcelTarget etarget = entity.getClazz().getAnnotation(ExcelTarget.class); | ||||
| String targetId = null; | String targetId = null; | ||||
| if (etarget != null) { | if (etarget != null) { | ||||