Changeset 255
- Timestamp:
- Mar 10, 2010, 7:27:57 PM (11 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy
r251 r255 91 91 case 3 : templatefieldtype = TemplateFieldType.STRING 92 92 break 93 case 4 : templatefieldtype = TemplateFieldType.STRING 94 break 93 95 default: break 94 96 } -
trunk/grails-app/domain/dbnp/importer/MappingColumn.groovy
r251 r255 25 25 26 26 String toString() { 27 return "Name:" + name + "/T ype:" + templatefieldtype + "/Entity:" + entity + "/Property:" + property + "/Celltype:" + celltype + "/Index:" + index + "/Value:" + value27 return "Name:" + name + "/TemplateFieldType:" + templatefieldtype + "/Entity:" + entity + "/Property:" + property + "/Celltype:" + celltype + "/Index:" + index + "/Value:" + value 28 28 } 29 29 } -
trunk/grails-app/services/dbnp/importer/ImporterService.groovy
r247 r255 19 19 import org.apache.poi.poifs.filesystem.POIFSFileSystem 20 20 import org.apache.poi.ss.usermodel.DataFormatter 21 import org.apache.poi.hssf.usermodel.HSSFDateUtil 21 22 import dbnp.importer.Column 23 import dbnp.studycapturing.TemplateFieldType 22 24 23 25 class ImporterService { … … 48 50 49 51 50 for (HSSFCell c: sheet.getRow( sheet.getFirstRowNum())) {52 for (HSSFCell c: sheet.getRow(datamatrix_start)) { 51 53 def datamatrix_celltype = sheet.getRow(datamatrix_start).getCell(c.getColumnIndex()).getCellType() 54 def headercell = sheet.getRow(sheet.getFirstRowNum()).getCell(c.getColumnIndex()) 52 55 53 56 // Check for every celltype, currently redundant code, but possibly this will be 54 57 // a piece of custom code for every cell type like specific formatting 55 56 switch (c.getCellType()) { 57 case HSSFCell.CELL_TYPE_STRING: 58 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(c), celltype:datamatrix_celltype); 59 break 60 case HSSFCell.CELL_TYPE_NUMERIC: 61 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(c), celltype:datamatrix_celltype); 62 break 58 59 switch (datamatrix_celltype) { 60 case HSSFCell.CELL_TYPE_STRING: 61 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.STRING); 62 break 63 case HSSFCell.CELL_TYPE_NUMERIC: 64 if (HSSFDateUtil.isCellDateFormatted(c)) { 65 println("DATE") 66 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.DATE) 67 } 68 else 69 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.INTEGER); 70 break 63 71 case HSSFCell.CELL_TYPE_BLANK: 64 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(c), celltype:datamatrix_celltype);65 break72 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.STRING); 73 break 66 74 default: 67 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(c), celltype:datamatrix_celltype);68 break75 header[c.getColumnIndex()] = new dbnp.importer.MappingColumn(name:df.formatCellValue(headercell), templatefieldtype:TemplateFieldType.STRING); 76 break 69 77 } 70 78 } … … 126 134 } 127 135 128 def importdata = { 129 136 /** 137 * Method to read data from a workbook and to import data into the database 138 * by using mapping information 139 * 140 * 141 * @param wb POI horrible spreadsheet formatted workbook object 142 * @param mc array of MappingColumns 143 * @param sheetindex sheet to use when using multiple sheets 144 * @param rowindex first row to start with reading the actual data (NOT the header) 145 * 146 * @see dbnp.importer.MappingColumn 147 */ 148 def importdata(HSSFWorkbook wb, int sheetindex, int rowindex, MappingColumn[] mc) { 149 def sheet = wb.getSheetAt(sheetindex) 150 def rows = [] 151 152 (count <= sheet.getLastRowNum()) ? 153 (rowindex..count).each { i -> 154 155 def row = [] 156 for (HSSFCell c: sheet.getRow(i)) 157 //row.add(c) 158 //row.add(df.formatCellValue(c)) 159 switch(mc[c.getColumnIndex()].celltype) { 160 case 0 : break 161 default : break 162 } 163 164 rows.add(row) 165 } : 0 130 166 } 131 167 } -
trunk/grails-app/taglib/dbnp/importer/ImporterTagLib.groovy
r251 r255 16 16 package dbnp.importer 17 17 import dbnp.studycapturing.Template 18 import dbnp.studycapturing.TemplateFieldType 18 19 19 20 class ImporterTagLib { … … 22 23 [type:3, name:"Protocol"], [type:4, name:"Sample"]] 23 24 24 def standardcelltypes = [25 /*def standardcelltypes = [ 25 26 [type:0, name:"Numeric"], [type:1, name:"String"], [type:2, name:"Formula"], 26 27 [type:3, name:"Blank"], [type:4, name:"Boolean"], [type:5, name:"Error"], [type:6, name:"Date"], 27 28 [type:7, name:"Float"], [type:8, name:"Double"], [type:9, name:"List of items"], [type:10, name:"Ontologyterm"] 28 ] 29 ]*/ 29 30 30 31 /** … … 61 62 } 62 63 63 def createSelect(int selected, String name, ArrayListoptions, String customvalue) {64 def createSelect(int selected, String name, options, String customvalue) { 64 65 def res = "<select style=\"font-size:10px\" name=\"${name}\">" 65 66 … … 136 137 def selected = (attrs['selected']==null) ? -1 : attrs['selected'] 137 138 def customvalue = (attrs['customvalue']==null) ? "" : attrs['customvalue'] 138 out << createSelect(selected, attrs['name'], standardcelltypes, customvalue) 139 //out << createSelect(selected, attrs['name'], standardcelltypes, customvalue) 140 out << createSelect(selected, attrs['name'], TemplateFieldType.list(), customvalue) 139 141 } 140 142 } -
trunk/grails-app/views/importer/common/_preview.gsp
r247 r255 28 28 <g:each var="column" in="${header}"> 29 29 <td class="header"> 30 <importer:celltypeSelect selected="${column.value. celltype.toInteger()}" name="celltype" customvalue="${column.key.toString()}"/>30 <importer:celltypeSelect selected="${column.value.templatefieldtype}" name="celltype" customvalue="${column.key.toString()}"/> 31 31 </td> 32 32 </g:each>
Note: See TracChangeset
for help on using the changeset viewer.