2017-03-07 7 views
2

#私はApache POIを使用してExcelファイルを読み込んでいます。日付を読み取ることができません。 Excelでは、日付フォーマット2017年3月15日6:00(セルの書式=カスタム)&あなたは各行の2があることを行っていると言うどのセル、すなわち列位置がわかっている場合は42809.25私はApache POIを使ってExcelファイルを読んでいます。日付を読み取ることができません。 Excelで、日付形式2017-03-15 6:00(セル形式=カスタム)&poiを使用して、読み込み42809.25

cell = ExcelWSheet.getRow(RowNum).getCell(ColNum); 
    int dataType = cell.getCellType(); 
    if (dataType == 0) { 
     String cellData1 = NumberToTextConverter.toText(cell.getNumericCellValue()); 
     return cellData1; 

    } else { 
     String cellData = cell.getStringCellValue(); 
     return cellData; 
    } 

答えて

1

を読んで、ポイを使用してあなたはrow.getCell(2).getDateCellValue()に直接行くことができます。

チェックアウトExcelsheetsで日付を扱うためのPOIのDateUtilクラスのメソッドは、DateUtil.isCellDateFormatted()

または

if (DateUtil.isCellDateFormatted(cell)) 
{ 
try { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    cellValue = sdf.format(cell.getDateCellValue()); 

} catch (ParseException e) { 
     e.printStackTrace(); 
} 
} 
1

おかげDhaval以下のように日付を取得することができます:)私はあなたのコードといくつかを使用してみました他の行。今のコードは私のために働いています。

cell = ExcelWSheet.getRow(RowNum).getCell(ColNum); 
      if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) { 
       if (DateUtil.isCellDateFormatted(cell)) { 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm"); 
        String cellDate1 = sdf.format(cell.getDateCellValue()); 
        return cellDate1; 
       } else { 
        String cellData2 = NumberToTextConverter.toText(cell.getNumericCellValue()); 
        return cellData2; 
       } 
      } else { 
       String cellData = cell.getStringCellValue(); 
       return cellData; 
      } 
+1

あなたはセルのインデックスを知っていればDateUtilが少ないコードを作るが、あなたがやったことはGUDで、 –

+1

は、try/catchブロック内のコードを囲み、 –

+1

はい。私は囲んだ。私はブロックをキャッチしようとしなかった。とにかく感謝:) –

関連する問題