Changeset 634
- Timestamp:
- Jul 1, 2010, 3:03:03 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/services/dbnp/importer/ImporterService.groovy
r632 r634 61 61 def index = c.getColumnIndex() 62 62 def datamatrix_celltype = sheet.getRow(datamatrix_start).getCell(index).getCellType() 63 def datamatrix_celldata = df.formatCellValue(sheet.getRow(datamatrix_start).getCell(index)) 63 64 def headercell = sheet.getRow(sheet.getFirstRowNum()).getCell(index) 64 65 def tft = TemplateFieldType.STRING //default templatefield type 65 66 66 67 // Check for every celltype, currently redundant code, but possibly this will be 67 68 // a piece of custom code for every cell type like specific formatting … … 70 71 case HSSFCell.CELL_TYPE_STRING: 71 72 //parse cell value as double 72 def parsable= true73 def doubleBoolean = true 73 74 def fieldtype = TemplateFieldType.STRING 74 75 75 76 // is this string perhaps a double? 76 try { 77 formatValue( c.getStringCellValue(), TemplateFieldType.DOUBLE)78 } catch (NumberFormatException nfe) { parsable= false }79 finally { 80 if ( parsable) fieldtype = TemplateFieldType.DOUBLE77 try { 78 formatValue(datamatrix_celldata, TemplateFieldType.DOUBLE) 79 } catch (NumberFormatException nfe) { doubleBoolean = false } 80 finally { 81 if (doubleBoolean) fieldtype = TemplateFieldType.DOUBLE 81 82 } 82 83 … … 88 89 89 90 break 90 case HSSFCell.CELL_TYPE_NUMERIC: 91 if (HSSFDateUtil.isCellDateFormatted(c)) { 92 header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 93 templatefieldtype:TemplateFieldType.DATE, 94 index:index, 95 entity:theEntity, 96 property:property) 91 case HSSFCell.CELL_TYPE_NUMERIC: 92 def fieldtype = TemplateFieldType.INTEGER 93 def doubleBoolean = true 94 def integerBoolean = true 95 96 // is this cell really an integer? 97 try { 98 Integer.valueOf(datamatrix_celldata) 99 } catch (NumberFormatException nfe) { integerBoolean = false } 100 finally { 101 if (integerBoolean) fieldtype = TemplateFieldType.INTEGER 97 102 } 98 else 99 header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 100 templatefieldtype:TemplateFieldType.INTEGER, 101 index:index, 102 entity:theEntity, 103 property:property); 103 104 // it's not an integer, perhaps a double? 105 if (!integerBoolean) 106 try { 107 formatValue(datamatrix_celldata, TemplateFieldType.DOUBLE) 108 } catch (NumberFormatException nfe) { doubleBoolean = false } 109 finally { 110 if (doubleBoolean) fieldtype = TemplateFieldType.DOUBLE 111 } 112 113 if (HSSFDateUtil.isCellDateFormatted(c)) fieldtype = TemplateFieldType.DATE 114 115 header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 116 templatefieldtype:fieldtype, 117 index:index, 118 entity:theEntity, 119 property:property); 104 120 break 105 121 case HSSFCell.CELL_TYPE_BLANK: … … 333 349 case TemplateFieldType.STRING : return value.trim() 334 350 case TemplateFieldType.TEXT : return value.trim() 335 case TemplateFieldType.INTEGER : return Integer.valueOf(value .replaceAll("[^0-9]",""))351 case TemplateFieldType.INTEGER : return Integer.valueOf(value) 336 352 case TemplateFieldType.FLOAT : return Float.valueOf(value.replace(",",".")); 337 353 case TemplateFieldType.DOUBLE : return Double.valueOf(value.replace(",","."));
Note: See TracChangeset
for help on using the changeset viewer.