Changeset 273 for trunk/grails-app/services/dbnp
- Timestamp:
- Mar 16, 2010, 3:36:14 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/services/dbnp/importer/ImporterService.groovy
r268 r273 155 155 */ 156 156 def importdata(template_id, HSSFWorkbook wb, int sheetindex, int rowindex, mcmap) { 157 def sheet = wb.getSheetAt(sheetindex) 158 def rows = [] 159 def df = new DataFormatter() 157 def sheet = wb.getSheetAt(sheetindex) 160 158 161 159 // walk through all rows 162 160 rowindex..sheet.getLastRowNum().each { i -> 163 def record = [:] 164 165 // get the value of the cells in the row 166 for (HSSFCell cell: sheet.getRow(i)) { 167 def mc = mcmap[cell.getColumnIndex()] 168 record.add(createColumn(template_id, cell, mc)) 169 } 170 } 171 println record 172 } 173 174 /** 175 * This function creates a column based on the current cell and mapping 176 * 177 * @param template_id template identifier to use fields from 178 * @param cell POI cell read from Excel 179 * @param mc mapping column 180 * @return entity object 181 * 182 */ 183 def createColumn(template_id, HSSFCell cell, MappingColumn mc) { 161 def table = [] 162 163 table.add(createRecord(template_id, sheet.getRow(i), mcmap)) 164 } 165 } 166 /** 167 * This method created a record (array) containing entities with values 168 */ 169 def createRecord(template_id, HSSFRow excelrow, mcmap) { 184 170 def df = new DataFormatter() 185 171 def template = Template.get(template_id) 186 187 // check the templatefield entity of the cell 188 switch(mc.entity) { 189 case Study : def st = new Study(template:template) 190 st.setFieldValue(mc.name, df.formatCellValue(cell)) 191 return st 192 break 193 case Subject: def su = new Subject(template:template) 194 su.setFieldValue(mc.name, df.formatCellValue(cell)) 195 return su 196 break 197 case Event : def ev = new Event(template:template) 198 ev.setFieldValue(mc.name, df.formatCellValue(cell)) 199 return ev 200 break 201 case Protocol: def pr = new Protocol(template:template) 202 pr.setFieldValue(mc.name, df.formatCellValue(cell)) 203 return pr 204 break 205 case Sample : def sa = new Sample(template:template) 206 sa.setFieldValue(mc.name, df.formatCellValue(cell)) 207 return sa 208 break 209 case Object : break 210 } 211 } 172 def record = [] 173 174 def study = new Study(title:"New study", template:template) 175 def subject = new Subject(title:"New subject", template:template) 176 def event = new Event(title:"New event", template:template) 177 def protocol = new Protocol(title:"New protocol", template:template) 178 def sample = new Sample(title:"New sample", template:template) 179 180 record.add(study) 181 record.add(subject) 182 record.add(event) 183 record.add(protocol) 184 record.add(sample) 185 186 for (HSSFCell cell: excelrow) { 187 def mc = mcmap[cell.getColumnIndex()] 188 189 switch(mc.entity) { 190 case Study : study.setFieldValue(mc.property.name, df.formatCellValue(cell)) 191 break 192 case Subject : subject.setFieldValue(mc.property.name, df.formatCellValue(cell)) 193 break 194 case Event : event.setFieldValue(mc.property.name, df.formatCellValue(cell)) 195 break 196 case Protocol : protocol.setFieldValue(mc.property.name, df.formatCellValue(cell)) 197 break 198 case Sample : sample.setFieldValue(mc.property.name, df.formatCellValue(cell)) 199 break 200 case Object : // don't import 201 break 202 } // end switch 203 } // end for 204 205 return record 206 } 207 212 208 }
Note: See TracChangeset
for help on using the changeset viewer.