Pārlūkot izejas kodu

修复了font的数组越界

开放了缓存,大家可以自定义缓存
4.1.3.A
jueyue pirms 9 gadiem
vecāks
revīzija
26baf050d7
3 mainītis faili ar 33 papildinājumiem un 9 dzēšanām
  1. +2
    -2
      easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoadeImpl.java
  2. +28
    -4
      easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java
  3. +3
    -3
      easypoi-base/src/main/java/org/jeecgframework/poi/excel/html/helper/StylerHelper.java

easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoade.java → easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/FileLoadeImpl.java Parādīt failu

@@ -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;

+ 28
- 4
easypoi-base/src/main/java/org/jeecgframework/poi/cache/manager/POICacheManager.java Parādīt failu

@@ -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<String, byte[]> loadingCache;
private static IFileLoader fileLoder;
private static ThreadLocal<IFileLoader> LOCAL_FILELOADER = new ThreadLocal<IFileLoader>();
static {
loadingCache = CacheBuilder.newBuilder().expireAfterWrite(7, TimeUnit.DAYS).maximumSize(50)
.build(new CacheLoader<String, byte[]>() {
@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<String, byte[]> loadingCache) {
POICacheManager.loadingCache = loadingCache;
}
}

+ 3
- 3
easypoi-base/src/main/java/org/jeecgframework/poi/excel/html/helper/StylerHelper.java Parādīt failu

@@ -88,12 +88,12 @@ public class StylerHelper {
private void printInlineStyle(Workbook wb) {
out.format("<style type=\"text/css\">%n");
printStyles(wb);
prontFonts(wb);
printFonts(wb);
out.format("</style>%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);


Notiek ielāde…
Atcelt
Saglabāt