package jp.co.sourceforge.dbutsuite;
-import jp.co.sourceforge.dbutsuite.datareader.ExcelDataReader\r
+import jp.co.sourceforge.dbutsuite.datareader.ExcelDataReader
def reader = new ExcelDataReader("null.xls", "シート1")
-reader.read()
+def dataobject = reader.read()
+
+dataobject.items.each {
+ println "$it.name"
+}
+
package jp.co.sourceforge.dbutsuite.datareader
import jp.co.sourceforge.dbutsuite.model.DataObject
-import org.apache.poi.hssf.usermodel.HSSFWorkbook\rimport org.apache.poi.poifs.filesystem.POIFSFileSystem\rimport java.io.FileInputStream\rimport org.apache.poi.hssf.usermodel.HSSFSheet\rimport org.apache.poi.hssf.usermodel.HSSFCell\rimport org.apache.poi.hssf.usermodel.HSSFRow\rimport org.apache.poi.hssf.record.formula.functions.Cell\rimport jp.co.sourceforge.dbutsuite.model.DataObjectItem\r\rclass ExcelDataReader implements DataReader {
+import org.apache.poi.hssf.usermodel.HSSFWorkbook\rimport org.apache.poi.poifs.filesystem.POIFSFileSystem\rimport java.io.FileInputStream\rimport org.apache.poi.hssf.usermodel.HSSFSheet\rimport org.apache.poi.hssf.usermodel.HSSFCell\rimport org.apache.poi.hssf.usermodel.HSSFRow\rimport org.apache.poi.hssf.record.formula.functions.Cell\rimport jp.co.sourceforge.dbutsuite.model.DataObjectItem\rimport java.text.SimpleDateFormat\r\rclass ExcelDataReader implements DataReader {
def filePath
def sheetName
HSSFRow row = sheet.getRow(i)
row.cells.each {
DataObjectItem item = new DataObjectItem()
- item.name = "a"
+ //item.name = ""
if (it.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
{
item.value = it.getNumericCellValue()
}
else if (it.getCellType() == HSSFCell.CELL_TYPE_STRING)
- {
- //TODO 日付型
-
- item.type = "STRING"
- item.value = it.getRichStringCellValue()
+ {
+ def dateValue = stringToDate(it.getRichStringCellValue())
+ if (dateValue)
+ {
+ item.type = "DATE"
+ item.value = dateValue
+ }
+ else
+ {
+ item.type = "STRING"
+ item.value = it.getRichStringCellValue()
+ }
}
dataObject.add( item )
}
}
return dataObject
}
+
+ def stringToDate(dateString)
+ {
+ def result = null
+ def dateformats = ["yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm:ss.SSS"]
+ dateformats.each {
+ try
+ {
+ SimpleDateFormat sdf = new SimpleDateFormat(it)
+ sdf.setLenient(false)
+ result = sdf.parse(dateString)
+ }
+ catch(e) {}
+ }
+ return result
+ }
}