spring批处理-使用FlatFileItemWriter将数据导出到csv

问题描述 投票:0回答:1

我尝试导出 csv 文件,但发现错误,所有值都设置为一列,而不是两列或三列,这是输出示例:

enter image description here

导出文件的java代码:

    public writeFile(List<Test> tests) throws Exception {
FlatFileItemWriter<Test> flatFileItemWriter
                = new FlatFileItemWriter<Test>();
        flatFileItemWriter.setResource
                (new FileSystemResource
                        ("/data/outputData.csv"));

        flatFileItemWriter.setLineAggregator(getDelimitedLineAggregator());
          flatFileItemWriter.open(new ExecutionContext());
        flatFileItemWriter.write(tests);
        flatFileItemWriter.close();

        return flatFileItemWriter; 

}

    private DelimitedLineAggregator<Test> getDelimitedLineAggregator() {
        BeanWrapperFieldExtractor<Test> beanWrapperFieldExtractor = new BeanWrapperFieldExtractor<Test>();
        beanWrapperFieldExtractor.setNames(new String[] {"Id", "typeTest1", "typeTest2"});

        DelimitedLineAggregator<Test > aggregator = new DelimitedLineAggregator<Test>();
        aggregator.setDelimiter(",");
        aggregator.setFieldExtractor(beanWrapperFieldExtractor);
        return aggregator;
    }

文件导出了但是输出不好,所有数据在一列中一行,如何使数据在多列中一行,而且我在设置标题时发现标题值甚至错误,所有值在一列中。

感谢先进

java spring-boot spring-batch
1个回答
0
投票

try this

在 Excel 中打开文件时可能会发生这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.