0100 に等しい文字列があり、Excel ファイルを生成すると、このフィールドが 100 に等しいことがわかります。最初の値を保持したい
<field name="sube" type="string" />
これは、ここで起こっていると思われることの背景です。
実際に表示される動作は、列のデータ型がどうあるべきかを推測する Excel です。「サブ」列には英数字や特殊文字がないため、これらの値を数値に変換しようとするため、削除されます10 進数 (基数 10) の数値の先頭のゼロは、数値の実際の値を変更しないためです。
BeanWriter
1 つの解決策は、出力データを常に引用するように に指示することです。これにより、Excel はすべての列とデータを "テキスト" として処理するようになり、列のデータ型を解釈して推測することはできなくなります。
その他のオプションについては、 CSV ストリーム形式のプロパティのドキュメントを参照してください。alwaysQuote = "true"
alwaysQuote - ブール値 - true に設定すると、フィールド テキストは常に引用されます。デフォルトでは、フィールドに区切り記号、引用符、または改行文字が含まれている場合にのみ、フィールドが引用されます。ビーンライター、マーシャラー
BeanIO マッピング xml ファイルにこれを追加します
<stream name="myStream" format="csv">
<parser>
<property name="alwaysQuote" value="true" />
</parser>
<!-- The rest of the mapping file content -->
</stream>
もう 1 つのオプションは、csv ファイルをインポートする方法を Excel で制御して、その特定の列text
をnumber
. これを行うには、Excel の「データ インポート ウィザード」を使用します。いくつかの可能なオプションについては、 this、this、およびthisを参照してください。ググればもっとたくさんあります。