Spring 批量 CSV 转换
Spring Batch CSV conversion
我正在 spring 批处理中将 txt 文件转换为 csv,我正在使用管道分隔的文本文件,我的问题是当我尝试写入 csv 时,如果字段遇到逗号,则会创建一个新字段在 csv 中,即如果我有像 |Mumbai,India| 这样的地址在文本文件中,它在 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>
我以前遇到过,试试用双引号括起来
示例:
new_content = "\"" + review_content.text() + "\"";
希望对您有所帮助
您需要扩展 DelimitedLineAggregator
并将包含 ,
的每个字段用双引号 "
括起来。此外,对于包含逗号和双引号的任何字段,您需要使用另一个双引号转义每个双引号,如下所示:
some value -> some value
some, value -> "some, value"
some, "other" value -> "some, ""other"" value"
仅供参考:这就是 Excel 处理 CSV 文档的方式
我正在 spring 批处理中将 txt 文件转换为 csv,我正在使用管道分隔的文本文件,我的问题是当我尝试写入 csv 时,如果字段遇到逗号,则会创建一个新字段在 csv 中,即如果我有像 |Mumbai,India| 这样的地址在文本文件中,它在 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>
我以前遇到过,试试用双引号括起来
示例:
new_content = "\"" + review_content.text() + "\"";
希望对您有所帮助
您需要扩展 DelimitedLineAggregator
并将包含 ,
的每个字段用双引号 "
括起来。此外,对于包含逗号和双引号的任何字段,您需要使用另一个双引号转义每个双引号,如下所示:
some value -> some value
some, value -> "some, value"
some, "other" value -> "some, ""other"" value"
仅供参考:这就是 Excel 处理 CSV 文档的方式