簡體   English   中英

在Java中使用POI讀取Excel

[英]Reading Excel using POI in java

我有一個Excel文件,其中有幾個String數據類型列,一個數字列和一個日期列。 我正在使用Apache POI讀取文件。 以下是如何處理數據類型

Cell cell = sheet.getRow(i).getCell(j);

                if(cell!=null){
                    switch(cell.getCellType()){
                    case Cell.CELL_TYPE_STRING: 
                        cellValue = cell.getStringCellValue();
                        break;
                    case Cell.CELL_TYPE_NUMERIC:
                        DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
                        Date cellDate = cell.getDateCellValue();
                        cellValue = df.format(cellDate);
                        break;                          
                    case Cell.CELL_TYPE_BLANK:
                        break;
                    default :
                    }                       
                }

這適用於String和date數據類型。 但是對於數字,它將值轉換為日期。 我知道是因為處理有問題。 您能否建議如何處理數字和日期數據類型?

謝謝,山姆

如果您知道每種列都屬於哪種數據類型,則甚至不必每次都檢查單元格類型:

switch (columnIndex) {
    case 0:
    case 1:
    case 2: { 
       cellValue = cell.getStringCellValue();
       break; 
    }
    case 3: {
       Date cellDate = cell.getDateCellValue();
       // ...
       break;
    } 
    case 4: {
       cellValue = cell.getNumericCellValue();
       break;
    }    
}

如果您的欄可以同時包含日期和數字,則可以嘗試以下操作

import org.apache.poi.ss.usermodel.DateUtil;

case Cell.CELL_TYPE_NUMERIC:
   if (DateUtil.isCellDateFormatted(cell)) {
      // your code for date handling
   } else {
      cellValue = cell.getNumericCellValue();
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM