POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filePath))
HSSFWorkbook workbook = new HSSFWorkbook(fs)
HSSFSheet sheet = workbook.getSheet(sheetName)
+ def fields = readFieldNames(sheet)
int firstIndex = sheet.getFirstRowNum()
int lastIndex = sheet.getLastRowNum()
DataObject dataObject = new DataObject()
-
- for (int i in firstIndex..lastIndex) {
+ for (int i in (firstIndex+1)..lastIndex)
+ {
HSSFRow row = sheet.getRow(i)
- row.cells.each {
+ for (int j in 0..<fields.size)
+ {
+ HSSFCell cell = row.cells[j]
+
DataObjectItem item = new DataObjectItem()
- //item.name = ""
+ item.name = fields[j]
- if (it.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
+ def type = ""
+ def value = ""
+ if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
{
- item.type = "NUMBER"
- item.value = it.getNumericCellValue()
+ type = "NUMBER"
+ value = cell.getNumericCellValue()
}
- else if (it.getCellType() == HSSFCell.CELL_TYPE_STRING)
+ else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING)
{
- def dateValue = stringToDate(it.getRichStringCellValue())
+ def dateValue = stringToDate(cell.getRichStringCellValue())
if (dateValue)
{
- item.type = "DATE"
- item.value = dateValue
+ type = "DATE"
+ value = dateValue
}
else
{
- item.type = "STRING"
- item.value = it.getRichStringCellValue()
+ type = "STRING"
+ value = cell.getRichStringCellValue()
}
}
- dataObject.add( item )
+
+ if (value)
+ {
+ item.type = type
+ item.value = value
+ dataObject.add( item )
+ }
+
}
}
return dataObject
}
+ def readFieldNames(HSSFSheet sheet)
+ {
+ def fields = []
+ sheet.getRow(0).cells.each {
+ def fieldName = it.getRichStringCellValue().toString()
+ if (fieldName)
+ {
+ fields << fieldName
+ }
+ }
+ fields
+ }
+
def stringToDate(dateString)
{
def result = null