0

エクセルシートの内容を表示するJavaコードがあります。これで、数値/文字列/ブールデータを操作しているときに、常に正しい結果が得られます。とは異なり、コードをテストするために、Excelにいくつかの変更を加え、日付値を追加しました(例:2009年9月4日)。私のコードを実行すると、望ましくない結果が返されました。コードとo/pは次のように表示されます。Excelシートから日付値を読み取って表示するにはどうすればよいですか?ApachePoiを使用しています。XSSFDateUtilセルの値が日付であるかどうかを確認するために、次のようなことを行うことができます if-elseか?それは可能な解決策ですか?

Javaコード:

FileInputStream file = new FileInputStream(new File(FileName));
       System.out.println("The contents of sheet are:\n");
       XSSFWorkbook workbook = new XSSFWorkbook(file);
       XSSFSheet sheet = workbook.getSheetAt(0);
       Iterator<Row> rowIterator = sheet.iterator();
       while(rowIterator.hasNext()) {
           Row row = rowIterator.next(); 
           Iterator<Cell> cellIterator = row.cellIterator();
           while(cellIterator.hasNext()) {
               Cell cell = cellIterator.next();
               switch(cell.getCellType()) {
                   case Cell.CELL_TYPE_NUMERIC:
                       System.out.print(cell.getNumericCellValue() + "\t\t");
                       break;
                   case Cell.CELL_TYPE_STRING:
                       System.out.print(cell.getStringCellValue() + "\t\t");
                       break;
               }
           }
           System.out.println("");
       }    
       file.close();

O/P取得しています

ColA   | ColB....(few other columns)
32755.0|(other values)

代わりに、数値の代わりにその日付値を出力する必要があります。私のシートはColAの下で4-SEP-89の日付を持っており、いくつかの数字が表示されています。

希望するO/P

ColA    | ColB....(few other columns)
4-SEP-89|(other values)

:-これは私のコードの一部であり、正常に実行されています。エラーは発生しませんが、上記のようにo/pを少し変更する必要があります。私はしばらくこれに取り組んできました。私はここの前にExcelシートの表示に関連する質問をしました-他のいくつかと一緒に解決されたExcelドキュメント(Javaコード)を読んでいる間に問題が発生します。とにかくありがとう。

また、私が思う限り、Excelからのすべては、文字列として読み取られます(ブール値を除く)?そうじゃない?

4

1 に答える 1

4

あなたは見たいかもしれませんDateUtil.isCellDateFormatted()

DateUtilは、Excelの日付を処理するのに役立つユーティリティクラスです。また、から取得したJava日付を取得するメソッドもありdoubleます。Cell

于 2012-12-27T13:41:10.277 に答える