@@ -37,14 +37,14 @@ public final class POICacheManager { | |||||
private static IFileLoader fileLoader = new FileLoaderImpl(); | private static IFileLoader fileLoader = new FileLoaderImpl(); | ||||
private static ThreadLocal<IFileLoader> LOCAL_FILELOADER = new ThreadLocal<IFileLoader>(); | |||||
private static ThreadLocal<IFileLoader> LOCAL_FILE_LOADER = new ThreadLocal<IFileLoader>(); | |||||
public static InputStream getFile(String id) { | public static InputStream getFile(String id) { | ||||
try { | try { | ||||
byte[] result; | byte[] result; | ||||
//复杂数据,防止操作原数据 | //复杂数据,防止操作原数据 | ||||
if (LOCAL_FILELOADER.get() != null) { | |||||
result = LOCAL_FILELOADER.get().getFile(id); | |||||
if (LOCAL_FILE_LOADER.get() != null) { | |||||
result = LOCAL_FILE_LOADER.get().getFile(id); | |||||
} | } | ||||
result = fileLoader.getFile(id); | result = fileLoader.getFile(id); | ||||
result = Arrays.copyOf(result, result.length); | result = Arrays.copyOf(result, result.length); | ||||
@@ -65,7 +65,7 @@ public final class POICacheManager { | |||||
*/ | */ | ||||
public static void setFileLoaderOnce(IFileLoader fileLoader) { | public static void setFileLoaderOnce(IFileLoader fileLoader) { | ||||
if (fileLoader != null) { | if (fileLoader != null) { | ||||
LOCAL_FILELOADER.set(fileLoader); | |||||
LOCAL_FILE_LOADER.set(fileLoader); | |||||
} | } | ||||
} | } | ||||
@@ -121,6 +121,9 @@ 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 ) { | |||||
sheet.createRow(i); | |||||
} | |||||
sheet.getRow(i).createCell(margeCellNum); | sheet.getRow(i).createCell(margeCellNum); | ||||
sheet.getRow(i).getCell(margeCellNum).setCellStyle(getStyles(false, entity)); | sheet.getRow(i).getCell(margeCellNum).setCellStyle(getStyles(false, entity)); | ||||
} | } | ||||
@@ -162,7 +162,7 @@ public class ExcelToHtmlService { | |||||
firstColumn = (lastRow > 1 ? Integer.MAX_VALUE : 0); | firstColumn = (lastRow > 1 ? Integer.MAX_VALUE : 0); | ||||
endColumn = 0; | endColumn = 0; | ||||
for (int i = 0; i < lastRow; i++) { | for (int i = 0; i < lastRow; i++) { | ||||
Row row = sheet.getRow(lastRow); | |||||
Row row = sheet.getRow(i); | |||||
short firstCell = row.getFirstCellNum(); | short firstCell = row.getFirstCellNum(); | ||||
if (firstCell >= 0) { | if (firstCell >= 0) { | ||||
firstColumn = Math.min(firstColumn, firstCell); | firstColumn = Math.min(firstColumn, firstCell); | ||||
@@ -290,14 +290,9 @@ public class CellValueService { | |||||
if (result == null || StringUtils.isBlank(result.toString())) { | if (result == null || StringUtils.isBlank(result.toString())) { | ||||
return null; | return null; | ||||
} | } | ||||
if ("class java.util.Date".equals(classFullName) && result instanceof Date) { | |||||
return result; | |||||
} else if ("class java.util.Date".equals(classFullName) && result instanceof String) { | |||||
if ("class java.util.Date".equals(classFullName) && result instanceof String) { | |||||
return DateUtils.parseDate(result.toString(), entity.getFormat()); | return DateUtils.parseDate(result.toString(), entity.getFormat()); | ||||
} | } | ||||
if ("class java.sql.Date".equals(classFullName) && result instanceof java.sql.Date) { | |||||
return result; | |||||
} | |||||
if ("class java.lang.Boolean".equals(classFullName) || "boolean".equals(classFullName)) { | if ("class java.lang.Boolean".equals(classFullName) || "boolean".equals(classFullName)) { | ||||
return Boolean.valueOf(String.valueOf(result)); | return Boolean.valueOf(String.valueOf(result)); | ||||
} | } | ||||
@@ -105,7 +105,7 @@ public class SheetHandler extends DefaultHandler { | |||||
return; | return; | ||||
} | } | ||||
} | } | ||||
} catch (NumberFormatException e) { | |||||
} catch (Exception e) { | |||||
} | } | ||||
// 没别的了就是数字了 | // 没别的了就是数字了 | ||||