OSDN Git Service

implementd read excel file
authorinabatch <nobuyuki178jp@yahoo.co.jp>
Wed, 27 May 2009 14:55:55 +0000 (23:55 +0900)
committerinabatch <nobuyuki178jp@yahoo.co.jp>
Wed, 27 May 2009 14:55:55 +0000 (23:55 +0900)
.settings/org.eclipse.jdt.core.prefs
null.xls
src/jp/co/sourceforge/dbutsuite/Hello.groovy
src/jp/co/sourceforge/dbutsuite/datareader/ExcelDataReader.groovy

index eb461a9..442f99f 100644 (file)
@@ -1,3 +1,3 @@
-#Tue May 26 00:48:07 JST 2009
+#Wed May 27 23:44:43 JST 2009
 eclipse.preferences.version=1
 org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch,*.groovy
index 268056a..8555f34 100644 (file)
Binary files a/null.xls and b/null.xls differ
index 4402df7..0a42e3f 100644 (file)
@@ -4,7 +4,8 @@ def reader = new ExcelDataReader("null.xls", "シート1")
 def dataobject = reader.read()
 
 dataobject.items.each {
-       println "$it.name"
+       println "$it.name $it.type $it.value"
+       
 }
 
 
index 7bc0c35..663a8b6 100644 (file)
@@ -16,43 +16,69 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook\rimport org.apache.poi.poifs.fi
                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