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=fecd7f2911bfd0b1bd0439d021536110bf874b0a;hb=9345ad49cb9c3505c3cae938efd028ebffd1a2d8;hp=015dc06be451661acf6b3739c48b9077f2a5d1f5;hpb=3a2d1d7c935065e5048232d9aa7c20b4b875e316;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 015dc06be..fecd7f291 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 @@ -9,10 +9,14 @@ import java.util.Map; import java.util.TreeMap; import jxl.Cell; +import jxl.CellType; import jxl.FormulaCell; import jxl.JXLException; +import jxl.LabelCell; +import jxl.NumberCell; import jxl.Sheet; import jxl.Workbook; +import jxl.WorkbookSettings; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; @@ -45,6 +49,8 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, private List workbooks = new ArrayList(); + private Integer charset = 0; + public void afterPropertiesSet() throws Exception { init(); } @@ -85,7 +91,9 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, 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); } @@ -162,6 +170,17 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, + ", targetRow=" + targetRow); } else { String contents = cell.getContents(); + +// if (cell.getType() == CellType.LABEL) { +// LabelCell lc = (LabelCell) cell; +// contents = lc.getString(); +// } else if (cell.getType() == CellType.NUMBER) { +// NumberCell nc = (NumberCell) cell; +// contents = new Double(nc.getValue()).toString(); +// } else { +// contents = cell.getContents(); +// } + if (propertyName.equals(keyProperty) && !StringUtils.hasText(contents)) { // auto allocate key column if empty @@ -321,6 +340,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;