Changeset 684

Show
Ignore:
Timestamp:
21-07-10 14:47:31 (4 years ago)
Author:
tabma
Message:

- integer column is now correctly returned as an integer (formatValue-method), POI *always* returns a double if a column is numeric...

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r669 r684  
    172172            (0..header.size()-1).each { columnindex -> 
    173173                def c = sheet.getRow(rowindex).getCell(columnindex, org.apache.poi.ss.usermodel.Row.CREATE_NULL_AS_BLANK)                
     174                //row.add(df.formatCellValue(c)) 
    174175                row.add(c) 
    175176                //if (c.getCellType() == c.CELL_TYPE_STRING) println "STR"+c.getStringCellValue() 
     
    210211 
    211212    /** 
    212     * Method to read data from a workbook and to import data into the database 
    213     * by using mapping information 
     213    * Method to read data from a workbook and to import data into a two dimensional 
     214    * array 
    214215    * 
    215216    * @param template_id template identifier to use fields from 
     
    312313            def value 
    313314 
     315            // Check if column must be imported 
    314316            if (!mc.dontimport) { 
    315                 /*try { 
    316                 value = formatValue(df.formatCellValue(cell), mc.templatefieldtype) 
     317                try { 
     318                    value = formatValue(df.formatCellValue(cell), mc.templatefieldtype) 
    317319                } catch (NumberFormatException nfe) { 
    318320                 value = "" 
    319                 }*/ 
    320             value = df.formatCellValue(cell) 
     321                } 
    321322 
    322323            switch(mc.entity) { 
     
    351352                case TemplateFieldType.STRING       :   return value.trim() 
    352353                case TemplateFieldType.TEXT         :   return value.trim() 
    353                 case TemplateFieldType.INTEGER      :   return Integer.valueOf(value) 
     354                case TemplateFieldType.INTEGER      :   return (int) Double.valueOf(value) 
    354355                case TemplateFieldType.FLOAT        :   return Float.valueOf(value.replace(",",".")); 
    355356                case TemplateFieldType.DOUBLE       :   return Double.valueOf(value.replace(",",".")); 
     
    360361            } 
    361362    } 
     363 
    362364}