Changeset 655

Show
Ignore:
Timestamp:
15-07-10 15:38:18 (4 years ago)
Author:
tabma
Message:

- fixed header and column import with mouse test dataset

Location:
trunk/grails-app
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r632 r655  
    6363        session.importer_workbook = wb 
    6464 
    65         render (view:"step1_advanced", model:[header:session.importer_header, datamatrix:ImporterService.getDatamatrix(wb, 0, 5)]) 
     65        render (view:"step1_advanced", model:[header:session.importer_header, datamatrix:ImporterService.getDatamatrix(wb, session.importer_header, 0, 5)]) 
    6666    } 
    6767 
     
    9090        def templates = Template.get(session.importer_template_id) 
    9191         
    92         render(view:"step2_simple", model:[entities: selectedentities, header:session.importer_header, datamatrix:ImporterService.getDatamatrix(wb, 0, 5), templates:templates]) 
     92        render(view:"step2_simple", model:[entities: selectedentities, header:session.importer_header, datamatrix:ImporterService.getDatamatrix(wb, session.importer_header, 0, 5), templates:templates]) 
    9393    } 
    9494 
     
    125125        } 
    126126 
    127         render(view:"step3", model:[datamatrix:session.importer_importeddata]) 
    128         //render("Succesful") 
     127        render(view:"step3", model:[datamatrix:session.importer_importeddata])   
    129128    } 
    130129 
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r634 r655  
    5252 
    5353        def sheet = wb.getSheetAt(sheetindex) 
    54         def datamatrix_start = sheet.getFirstRowNum() + 1 
     54        def datamatrix_start = sheet.getFirstRowNum() + 2 
     55        def sheetrow = sheet.getRow(datamatrix_start) 
    5556        //def header = [] 
    5657        def header = [:] 
     
    5859        def property = new String() 
    5960 
    60         for (HSSFCell c: sheet.getRow(datamatrix_start)) { 
    61             def index   =   c.getColumnIndex() 
    62             def datamatrix_celltype = sheet.getRow(datamatrix_start).getCell(index).getCellType() 
    63             def datamatrix_celldata = df.formatCellValue(sheet.getRow(datamatrix_start).getCell(index)) 
    64             def headercell = sheet.getRow(sheet.getFirstRowNum()).getCell(index) 
     61        //for (HSSFCell c: sheet.getRow(datamatrix_start)) { 
     62 
     63        (0..sheetrow.getLastCellNum() -1 ).each { columnindex -> 
     64 
     65            //def index =   c.getColumnIndex() 
     66            def datamatrix_celltype = sheet.getRow(datamatrix_start).getCell(columnindex, org.apache.poi.ss.usermodel.Row.CREATE_NULL_AS_BLANK).getCellType() 
     67            def datamatrix_celldata = df.formatCellValue(sheet.getRow(datamatrix_start).getCell(columnindex)) 
     68            def datamatrix_cell     = sheet.getRow(datamatrix_start).getCell(columnindex) 
     69            def headercell = sheet.getRow(sheet.getFirstRowNum()).getCell(columnindex) 
    6570            def tft = TemplateFieldType.STRING //default templatefield type 
    6671 
    6772            // Check for every celltype, currently redundant code, but possibly this will be  
    68             // a piece of custom code for every cell type like specific formatting 
     73            // a piece of custom code for every cell type like specific formatting           
    6974                 
    7075            switch (datamatrix_celltype) { 
     
    8287                            } 
    8388 
    84                             header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 
     89                            header[columnindex] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 
    8590                                                                            templatefieldtype:fieldtype, 
    86                                                                             index:index, 
     91                                                                            index:columnindex, 
    8792                                                                            entity:theEntity, 
    8893                                                                            property:property); 
     
    111116                                } 
    112117 
    113                             if (HSSFDateUtil.isCellDateFormatted(c)) fieldtype = TemplateFieldType.DATE 
     118                            if (HSSFDateUtil.isCellDateFormatted(datamatrix_cell)) fieldtype = TemplateFieldType.DATE 
    114119                             
    115                             header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 
     120                            header[columnindex] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 
    116121                                                                            templatefieldtype:fieldtype, 
    117                                                                             index:index, 
     122                                                                            index:columnindex, 
    118123                                                                            entity:theEntity, 
    119124                                                                            property:property); 
    120125                            break 
    121126                    case HSSFCell.CELL_TYPE_BLANK: 
    122                             header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 
     127                            header[columnindex] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 
    123128                                                                            templatefieldtype:TemplateFieldType.STRING, 
    124                                                                             index:index, 
     129                                                                            index:columnindex, 
    125130                                                                            entity:theEntity, 
    126131                                                                            property:property); 
    127132                            break 
    128133                    default: 
    129                             header[index] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 
     134                            header[columnindex] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), 
    130135                                                                            templatefieldtype:TemplateFieldType.STRING, 
    131                                                                             index:index, 
     136                                                                            index:columnindex, 
    132137                                                                            entity:theEntity, 
    133138                                                                            property:property); 
     
    148153     */ 
    149154 
    150     HSSFCell[][] getDatamatrix(HSSFWorkbook wb, int sheetindex, int count) { 
     155    HSSFCell[][] getDatamatrix(HSSFWorkbook wb, header, int sheetindex, int count) { 
    151156        def sheet = wb.getSheetAt(sheetindex) 
    152157        def rows  = [] 
     
    160165 
    161166            // walk through every cell 
    162             for (HSSFCell c: sheet.getRow(rowindex)) 
     167            /*for (HSSFCell c: sheet.getRow(rowindex)) { 
    163168                row.add(c) 
     169                println c.getColumnIndex() + "=" +c 
     170            }*/ 
     171             
     172            (0..header.size()-1).each { columnindex -> 
     173                def c = sheet.getRow(rowindex).getCell(columnindex, org.apache.poi.ss.usermodel.Row.CREATE_NULL_AS_BLANK) 
     174                println "DAS " + columnindex + ":" + c 
     175                row.add(c) 
     176            } 
    164177                //row.add(df.formatCellValue(c)) 
    165178            rows.add(row)