]> gerrit.simantics Code Review - simantics/interop.git/blob - 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
1 package org.simantics.excel.poi.parser;\r
2 \r
3 import org.apache.poi.ss.usermodel.Row;\r
4 \r
5 public class CellContentDataResolver extends CellStringDataResolver {\r
6         int column;\r
7         int element;\r
8         String separator;\r
9         boolean cut = true;\r
10         \r
11         public CellContentDataResolver(int column, int element, String separator) {\r
12                 super(column);\r
13                 this.column = column;\r
14                 this.element = element;\r
15                 this.separator = separator;\r
16         }\r
17         \r
18         public CellContentDataResolver(int column, int element, String separator, boolean cut) {\r
19                 super(column);\r
20                 this.column = column;\r
21                 this.element = element;\r
22                 this.separator = separator;\r
23                 this.cut = cut;\r
24         }\r
25 \r
26 //      @Override\r
27 //      public Double getDouble(Row row) {\r
28 //              String s =  getSubString(row);\r
29 //              if (s != null) {\r
30 //                      return Double.parseDouble(s);\r
31 //              }\r
32 //              return null;\r
33 //      }\r
34         \r
35         @Override\r
36         public String getValue(Row row) {\r
37                 if (row == null)\r
38                         return null;\r
39                 return getSubString(row);\r
40         }\r
41         \r
42         protected String getSubString(Row row) {\r
43                 String s =  getCellStringValue(getCell(row, column));\r
44                 if (cut) {\r
45                         String vals[] = s.split(separator);\r
46                         if (vals.length > element) {\r
47                                 return vals[element];\r
48                         }\r
49                 } else {\r
50                         int index = -1;\r
51                         for (int i = 0; i < element; i++) {\r
52                                 index = s.indexOf(separator,index+1);\r
53                                 if (index == -1)\r
54                                         return null;\r
55                         }\r
56                         return s.substring(index+1);\r
57                 }\r
58                 return null;\r
59         }\r
60 }\r
61 \r