1

私はExcelファイルといくつかのコンテンツを持っています。外部ソース(データベース、ファイルなど)からのものです。Excelの数値セルで問題が発生しました。-getNumericValueは、値がどのようにフォーマットされていても、どのセルでもdouble値を返します。外部ソースは数値の文字列表現を返します。つまり、「301」と「301.0」を返す可能性があり、これらは異なる値であり、どのタイプがどの場合であるかわかりません。ただし、Excelファイルに「301」がある場合、getNumericValueメソッドは常に「301.0」を返すため、外部ソースとExcelの値を比較する必要がある場合、Excelの「301」は外部ソースの「301」とは異なります。文字列の表現が異なるためです。

簡単に言えば、Excelで表示されるセル値の文字列表現を取得するための実用的な方法を教えてください。使用できるHSSF*クラスのみがあります。

4

3 に答える 3

3

DataFormatterクラスが必要です。適用される書式設定ルールに基づいてセルの内容を書式設定するハンドル。基本的にExcelが表示するものを提供するはずです

于 2011-09-29T10:39:45.777 に答える
2

別のスレッドに基づい て、値を取得する前に、最初にセルのタイプを文字列に設定できます。

cell.setCellType(Cell.CELL_TYPE_STRING);

小数点以下15桁以上の数値を取得するときにこのアプローチを試しましたが、これは魅力のように機能します。

于 2012-03-28T15:40:43.073 に答える
0

文字列を比較せず、代わりにdoubleを比較します。

String excelDouble=301.0;
String external="301";
Double externalDouble=Double.parseDouble(external);
externalDouble.equals(excelDouble); //return true
于 2011-09-29T10:47:32.343 に答える