Generic FlatFileItemWritter在不同的行中插入单独的值而不是一行

时间:2017-05-15 14:26:26

标签: java csv spring-batch

我使用通用的FlatFileItemWritter来创建csv,但是当我创建它时,所有值都插入到一列中

这是我的FlatFileItemWritter XML:

<bean id="flatFileItemWriter"
          class="org.springframework.batch.item.file.FlatFileItemWriter"
          scope="step">

        <property name="resource"
                  value="file:${folder.destination}" />

        <property name="lineAggregator">

            <bean class="org.springframework.batch.item.file.transform.DelimitedLineAggregator">

                <property name="delimiter" value="," />

                <property name="fieldExtractor">

                    <bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
                        <property name="names"
                                  value="${sql.fields}" />
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

总结数据在Csv中保存如下:

Column 1                    | Column 2 | Column 3 |
Christian,9999999-A,Company |          |          |

第1列,第2列和第3列只是它如何存储在CSV中的示例,我不想要header

我想将这样的数据存储在不同的列中,而不是全部存储在第一列:

Christian,9999999-A,Company

我通过属性获取值sql.fields和folder.destination

可以做我想要的通用FlatFileItemWritter,或者我需要做一个customFlatFileItemWritter

如果你需要更多的东西,我会编辑这个

抱歉我的英文不好,谢谢你读了我

1 个答案:

答案 0 :(得分:-1)

也许我迟到了,但是如果你想要标题和数据,也许你应该写点什么来分别做标题?

setHeaderCallback应该可以做到这一点:

http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/item/file/FlatFileItemWriter...

如果问题仍然存在,那么使用的属性会有所帮助。