プロジェクトのレポートに BIRT を使用しています。レポートは amount(String) の正しい値を 123456789123 と表示しますが、同じレポートを csv にエクスポートしようとすると、csv ファイルは 1.234E11 と同じ金額を示します。csvでも123456789123と値をつけたいです。助けてくださいありがとう
3 に答える
これはおそらくExcelで表示する際の問題だと思います。データをエクスポートしても、フォーマットコードはエクスポートされません。メモ帳でcsvを開くと、正しいデータが表示されます。レポートをExcelにエクスポートする場合は、データ項目のプロパティエディターの[フォーマット番号]プロパティで#####0のようなカスタムフォーマットコードを設定できます。
数値が大きすぎる場合、Excelはそのような値を表示します。列を展開し、フォーマットセルの下の数値に列を設定すると、正しく表示されます。Excelワークブックとして保存する必要があります。
BiRT レポート ツールでこの問題が発生しました。エクスポートしたファイルをテキスト エディタで開いたところ、数値は科学表記法でフォーマットされていました。これは、Birt のカスタム フォーマッタの 1 つのバグでした。
org.eclipse.birt.report.engine.dataextraction.impl.CommonDataExtractionImpl を見て、行を変更する必要がありました
valueFormatters[i] = new NumberFormatter( patterns[i], this.locale );
に
String pattern = patterns[i] == null ? "Unformatted" : patterns[i];
valueFormatters[i] = new NumberFormatter( pattern, this.locale );
パターンを "Unformatted" に設定すると、デフォルトのフォーマットが科学表記法ではなく通常の整数のままになります (10 進数フォーマッターを使用)。