diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoade.java b/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoadeImpl.java similarity index 94% rename from easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoade.java rename to easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoadeImpl.java index c240c68..cdacdcd 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoade.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoadeImpl.java @@ -30,9 +30,9 @@ import org.slf4j.LoggerFactory; * @date 2014年2月10日 * @version 1.0 */ -class FileLoade { +public class FileLoadeImpl implements IFileLoader { - private static final Logger LOGGER = LoggerFactory.getLogger(FileLoade.class); + private static final Logger LOGGER = LoggerFactory.getLogger(FileLoadeImpl.class); public byte[] getFile(String url) { FileInputStream fileis = null; diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java b/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java index a970751..cc44e11 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java @@ -37,19 +37,26 @@ import com.google.common.cache.LoadingCache; */ public final class POICacheManager { - private static final Logger LOGGER = LoggerFactory - .getLogger(POICacheManager.class); + private static final Logger LOGGER = LoggerFactory.getLogger(POICacheManager.class); private static LoadingCache loadingCache; + private static IFileLoader fileLoder; + + private static ThreadLocal LOCAL_FILELOADER = new ThreadLocal(); + static { loadingCache = CacheBuilder.newBuilder().expireAfterWrite(7, TimeUnit.DAYS).maximumSize(50) .build(new CacheLoader() { @Override public byte[] load(String url) throws Exception { - return new FileLoade().getFile(url); + if (LOCAL_FILELOADER.get() != null) + return LOCAL_FILELOADER.get().getFile(url); + return fileLoder.getFile(url); } }); + //设置默认实现 + fileLoder = new FileLoadeImpl(); } public static InputStream getFile(String id) { @@ -58,9 +65,26 @@ public final class POICacheManager { byte[] result = Arrays.copyOf(loadingCache.get(id), loadingCache.get(id).length); return new ByteArrayInputStream(result); } catch (ExecutionException e) { - LOGGER.error(e.getMessage(),e); + LOGGER.error(e.getMessage(), e); } return null; } + public static void setFileLoder(IFileLoader fileLoder) { + POICacheManager.fileLoder = fileLoder; + } + + /** + * 一次线程有效 + * @param fileLoder + */ + public static void setFileLoderOnce(IFileLoader fileLoder) { + if (fileLoder != null) + LOCAL_FILELOADER.set(fileLoder); + } + + public static void setLoadingCache(LoadingCache loadingCache) { + POICacheManager.loadingCache = loadingCache; + } + } diff --git a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/html/helper/StylerHelper.java b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/html/helper/StylerHelper.java index d52d6b5..e0ecec4 100644 --- a/easypoi-base/src/main/java/org/jeecgframework/poi/excel/html/helper/StylerHelper.java +++ b/easypoi-base/src/main/java/org/jeecgframework/poi/excel/html/helper/StylerHelper.java @@ -88,12 +88,12 @@ public class StylerHelper { private void printInlineStyle(Workbook wb) { out.format("%n"); } - private void prontFonts(Workbook wb) { - for (short i = 0, le = wb.getNumberOfFonts(); i <= le; i++) { + private void printFonts(Workbook wb) { + for (short i = 0, le = wb.getNumberOfFonts(); i < le; i++) { Font font = wb.getFontAt(i); out.format(".%s .%s {%n", DEFAULTS_CLASS, "font_" + i + "_" + cssRandom); fontStyle(font);