X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.jxl%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fjxl%2Fdao%2FJxlDaoSupport.java;h=dbd0793d9244e69aecfb8a9678b1a4fcfb7cede1;hb=12cfed09974f82584c66c460500b5b3a61789e7e;hp=7b4110d8e487e31428398d37ccc7791f4dca5092;hpb=c5bb48d71ad5d71e389137e5fb95f96d9005a942;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.jxl/src/main/java/org/argeo/server/jxl/dao/JxlDaoSupport.java b/server/runtime/org.argeo.server.jxl/src/main/java/org/argeo/server/jxl/dao/JxlDaoSupport.java index 7b4110d8e..dbd0793d9 100644 --- a/server/runtime/org.argeo.server.jxl/src/main/java/org/argeo/server/jxl/dao/JxlDaoSupport.java +++ b/server/runtime/org.argeo.server.jxl/src/main/java/org/argeo/server/jxl/dao/JxlDaoSupport.java @@ -1,6 +1,7 @@ package org.argeo.server.jxl.dao; import java.io.InputStream; +import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -13,6 +14,7 @@ import jxl.FormulaCell; import jxl.JXLException; import jxl.Sheet; import jxl.Workbook; +import jxl.WorkbookSettings; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; @@ -35,6 +37,7 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, private ClassLoader classLoader = getClass().getClassLoader(); private ApplicationContext applicationContext; + private List> additionalClasses = new ArrayList>(); private Map, Map> model = new HashMap, Map>(); @@ -44,6 +47,8 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, private List workbooks = new ArrayList(); + private Integer charset = 0; + public void afterPropertiesSet() throws Exception { init(); } @@ -74,10 +79,19 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, log.debug(references.size() + " references linked"); } + public List> getSupportedClasses() { + List> res = new ArrayList>(); + res.addAll(additionalClasses); + res.addAll(model.keySet()); + return res; + } + public void load(InputStream in, List references, Map> tempRefs) { try { - Workbook workbook = Workbook.getWorkbook(in); + WorkbookSettings workbookSettings = new WorkbookSettings(); + workbookSettings.setCharacterSet(charset); + Workbook workbook = Workbook.getWorkbook(in, workbookSettings); for (Sheet sheet : workbook.getSheets()) { loadSheet(sheet, references, tempRefs); } @@ -313,6 +327,18 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, this.classLoader = classLoader; } + public List> getAdditionalClasses() { + return additionalClasses; + } + + public void setAdditionalClasses(List> additionalClasses) { + this.additionalClasses = additionalClasses; + } + + public void setCharset(Integer charset) { + this.charset = charset; + } + public static class Reference { private Object object; private String property;