0

0100 に等しい文字列があり、Excel ファイルを生成すると、このフィールドが 100 に等しいことがわかります。最初の値を保持したい

<field name="sube" type="string" />
4

1 に答える 1

0

これは、ここで起こっていると思われることの背景です。

実際に表示される動作は、列のデータ型がどうあるべきかを推測する Excel です。「サブ」列には英数字や特殊文字がないため、これらの値を数値に変換しようとするため、削除されます10 進数 (基数 10) の数値の先頭のゼロは、数値の実際の値を変更しないためです。

BeanWriter1 つの解決策は、出力データを常に引用するように に指示することです。これにより、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 で制御して、その特定の列textnumber. これを行うには、Excel の「データ インポート ウィザード」を使用します。いくつかの可能なオプションについては、 thisthis、およびthisを参照してください。ググればもっとたくさんあります。

于 2018-10-10T11:07:05.717 に答える