私はxlsxファイルを持っています。私はJava 6でApache poi 3.17を読んでいます。あるインスタンスでは、値が123456789011のセルがあります。これはJavaに数えられたCellTypeEnum Cellとして読み込まれます。私はこのようなセルの値を取得するためにDataFormatterを使用する場合:Apache POI DataFormatterは科学的表記を返します
DataFormatter formatter = new DataFormatter(Locale.US); String strVal = formatter.formatCellValue(cell);
を文字列値は、「+ 11 1.234567」として出てきます。私は "123456789011"というセルに本当の価値が必要です。どうすれば入手できますか?
すでにJavaでBigDecimalを使用して文字列を変換しようとしましたが、これは指定された情報で可能な限り最高のため "123456700000"を返します。つまり、実際のセルオブジェクトから正しい値を取得する必要があります。私もcell.getNumericCellValue()を使用しようとしましたが、元の値を扱うには小さすぎる制限を持つdoubleを返します。したがって、他の取得メソッドと同じ問題を持つ "1.234567E11"として取得されます。
xlsxに入力された元のCellからStringとして値を取得する方法はありますか?私は元のxlsx以上の力はありません。
ありがとうございます。
なぜCell.getNumericCellValue()を使用しないのですか?書式設定を適用せずに実際の値をdoubleとして返す必要があります。 – centic
これは質問セントセントでカバーされています – user3813942
ここに表示しようhttps://stackoverflow.com/questions/16098046/how-to-print-double-value-without-scientific-notation-using-java – matrix