use*_*847 1 spring-batch export-to-csv
我正在春季批处理中将txt文件转换为csv,正在使用管道分隔的文本文件,而我的问题是,如果某个字段遇到逗号,我尝试写入csv时会在csv中创建一个新字段,即如果我的地址类似于|印度孟买| 在文本文件中,它将在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>
Run Code Online (Sandbox Code Playgroud)
您需要扩展DelimitedLineAggregator和包装每个包含的字段,并,用双引号将其引起来"。此外,对于任何包含逗号和双引号的字段,您都希望将每个双引号转义为另一个双引号,如下所示:
some value -> some value
some, value -> "some, value"
some, "other" value -> "some, ""other"" value"
Run Code Online (Sandbox Code Playgroud)
仅供参考:这就是Excel处理CSV文档的方式
| 归档时间: |
|
| 查看次数: |
1644 次 |
| 最近记录: |