2016-05-26 7 views
0

私は春のバッチでcsv変換に取り組んでいます。パイプで区切られたテキストファイルを使用しています。私の問題は、CSVに書き込もうとしたときにフィールドに遭遇すると新しいフィールドがcsv私はインドのムンバイのような住所を持っていますか?テキストファイルでは、ムンバイとインドの2つのフィールド、つまりCSVファイルのインドを作成する代わりに、インドのムンバイを1つのフィールドとして書き込む必要があります。春バッチCSV変換

CSV ItemWriter

<bean id="ABCWriters" class="org.springframework.batch.item.file.FlatFileItemWriter"> 
    <property name="resource" value="file:output/ABC.csv"></property> 
    <property name="shouldDeleteIfExists" value="true"></property> 

    <property name="lineAggregator">  
     <bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator"> 
      <property name="delimiter" value=","></property> 

      <property name="fieldExtractor"> 
        <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor"> 
        <property name="names" value="address, city" /> 
        </bean> 
      </property>   
     </bean>   
    </property>    
</bean> 

答えて

3

を支援DelimitedLineAggregatorと、,を含む各フィールドを二重引用符で囲むように囲みます。"。また、コンマダブルqouteを含む任意のフィールドのために、あなたはそうのような別の二重引用符で各二重引用符をエスケープすることをお勧めします:

some value   -> some value 
some, value   -> "some, value" 
some, "other" value -> "some, ""other"" value" 

をFYI:これはExcelがCSV文書

をどのように処理するかであります
+0

良い説明、ありがとう –

1

それは私の前に起こる、ダブルとそれを囲むようにしてくださいすることは
例を引用:

new_content = "\"" + review_content.text() + "\""; 

・ホープこれはあなたが拡張したいと思う

+0

こんにちはRahul、すばやい返信をありがとう、実際に私は春に新しくなっています。バッチ、正確に私がコード内で変更を行う必要がある場所を教えてください。 – user2153847

+0

私は、プロジェクトのバックエンドを見て外に出ないとは言いません。問題はCSVプロセスにあります。ちょうどあなたがCSVとして保存しようとしている文字列の値を取得するコード行に行ってください。CSVに保存する前に、二重引用符を追加してコンテンツを変更してください@上記のように始まりと終わり。私はそれが動作することを確認します。参照:http://www.javaworld.com/article/2458888/spring-framework/open-source-java-projects-spring-batch.html –