]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.excel.poi/src/org/simantics/excel/poi/parser/CellContentDataResolver.java
Excel parsing interface
[simantics/interop.git] / org.simantics.excel.poi / src / org / simantics / excel / poi / parser / CellContentDataResolver.java
diff --git a/org.simantics.excel.poi/src/org/simantics/excel/poi/parser/CellContentDataResolver.java b/org.simantics.excel.poi/src/org/simantics/excel/poi/parser/CellContentDataResolver.java
new file mode 100644 (file)
index 0000000..e84c04d
--- /dev/null
@@ -0,0 +1,61 @@
+package org.simantics.excel.poi.parser;\r
+\r
+import org.apache.poi.ss.usermodel.Row;\r
+\r
+public class CellContentDataResolver extends CellStringDataResolver {\r
+       int column;\r
+       int element;\r
+       String separator;\r
+       boolean cut = true;\r
+       \r
+       public CellContentDataResolver(int column, int element, String separator) {\r
+               super(column);\r
+               this.column = column;\r
+               this.element = element;\r
+               this.separator = separator;\r
+       }\r
+       \r
+       public CellContentDataResolver(int column, int element, String separator, boolean cut) {\r
+               super(column);\r
+               this.column = column;\r
+               this.element = element;\r
+               this.separator = separator;\r
+               this.cut = cut;\r
+       }\r
+\r
+//     @Override\r
+//     public Double getDouble(Row row) {\r
+//             String s =  getSubString(row);\r
+//             if (s != null) {\r
+//                     return Double.parseDouble(s);\r
+//             }\r
+//             return null;\r
+//     }\r
+       \r
+       @Override\r
+       public String getValue(Row row) {\r
+               if (row == null)\r
+                       return null;\r
+               return getSubString(row);\r
+       }\r
+       \r
+       protected String getSubString(Row row) {\r
+               String s =  getCellStringValue(getCell(row, column));\r
+               if (cut) {\r
+                       String vals[] = s.split(separator);\r
+                       if (vals.length > element) {\r
+                               return vals[element];\r
+                       }\r
+               } else {\r
+                       int index = -1;\r
+                       for (int i = 0; i < element; i++) {\r
+                               index = s.indexOf(separator,index+1);\r
+                               if (index == -1)\r
+                                       return null;\r
+                       }\r
+                       return s.substring(index+1);\r
+               }\r
+               return null;\r
+       }\r
+}\r
+\r