2012-03-22 19 views
-2

apche POIを使用してxlsxファイルを読み込み、csvファイルに変換していますが、データフォーマットが変更されています。たとえば、02/01/2010(dd/mm/yyyy)形式のxlsxファイルの日付ですが、csvを作成するときは02/Jan/2010に変更されています。通貨のフォーマットも変更されています。どのように私はすべてのデータを文字列として読み取ることができますか?Apache POIフォーマットを変更せずにxlsxファイルを読む

+1

どのようにCSVに変換していますか?あなた自身のコード?例の一つ?テキストエクストラクタの1つ? – Gagravarr

+0

私はxlsxファイルをセル単位で読み込み、csvファイルを作成しています。 –

+0

どのようにCSVを作成していますか?誰がコードを使用して翻訳していますか?それがあなたのものなら、POIのCSVの例を見てそこで何が行われているのか見てみましたか? – Gagravarr

答えて

1

Excelは日付を数値として格納するため、実際にセルが日付として格納されているかどうかを判断する唯一の方法は、書式設定を調べることです。これをチェックするヘルパーメソッドがHSSFDateUtilにあります。

case HSSFCell.CELL_TYPE_NUMERIC: 
     double d = cell.getNumericCellValue(); 
     // test if a date! 
     if (HSSFDateUtil.isCellDateFormatted(cell)) { 
      // format in form of M/D/YY 
      cal.setTime(HSSFDateUtil.getJavaDate(d)); 
      cellText = 
      (String.valueOf(cal.get(Calendar.YEAR))).substring(2); 
      cellText = cal.get(Calendar.MONTH)+1 + "/" + 
         cal.get(Calendar.DAY_OF_MONTH) + "/" + 
         cellText; 
     } 
+0

ここで何をしようとしていますか?問題は、セルエントリを文字列として読み取る方法です。 –

+0

値形式を変更せずにCSVファイルを作成したいです。 –

関連する問題