Spring batch Spring批处理CSV转换

Spring batch Spring批处理CSV转换,spring-batch,export-to-csv,Spring Batch,Export To Csv,我正在spring Batch中进行txt文件到csv的转换,我使用的是管道分隔文本文件,我的问题是当我尝试写入csv时,如果一个字段遇到逗号,一个新字段将在csv中创建,即如果我在文本文件中有地址,如|孟买,印度|,它将在csv文件中创建两个字段,即孟买和印度,而它应该写入孟买,印度作为单一领域 CSV项目编写器 <bean id="ABCWriters" class="org.springframework.batch.item.file.FlatFileItemWriter">

我正在spring Batch中进行txt文件到csv的转换,我使用的是管道分隔文本文件,我的问题是当我尝试写入csv时,如果一个字段遇到逗号,一个新字段将在csv中创建,即如果我在文本文件中有地址,如|孟买,印度|,它将在csv文件中创建两个字段,即孟买和印度,而它应该写入孟买,印度作为单一领域

CSV项目编写器

<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() + "\"";

希望这对我有所帮助,尝试用双引号括起来 例如:

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

希望这对您有所帮助

您希望扩展
分隔线聚合器
并将每个包含
的字段
包装为双引号
。此外,对于任何包含逗号和双引号的字段,您都希望用另一个双引号将每个双引号转义,如下所示:

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

仅供参考:这是Excel处理CSV文档的方式

您需要扩展
分隔线聚合器
,并将包含
的每个字段包装为双引号
。此外,对于任何包含逗号和双引号的字段,您都希望用另一个双引号对每个双引号进行转义,如下所示:

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

仅供参考:这是Excel处理CSV文档的方式

Hi Rahul,感谢您的快速回复,事实上我是spring Batch的新手,您能告诉我在哪里需要对代码进行更改,或者您能推荐一些示例以供参考。如果不了解您的项目后端,我不能说太多。忘记弹簧部分吧。问题在于CSV过程。只需在代码行中获取字符串值,该字符串值将保存为CSV。在将其保存到CSV之前,只需在开头和结尾添加双引号即可更改其内容,如我前面所述。我相信它会工作。参考:嗨Rahul,谢谢你的快速回复,事实上我是spring Batch的新手,你能告诉我我到底需要在哪里修改我的代码,或者你能建议一些例子参考。我不能说太多,除非看看你的项目后端。忘记弹簧部分吧。问题在于CSV过程。只需在代码行中获取字符串值,该字符串值将保存为CSV。在将其保存到CSV之前,只需在开头和结尾添加双引号即可更改其内容,如我前面所述。参考:更好的解释,谢谢更好的解释,谢谢