Spring批处理 - 如何生成一个批处理作业的输出文件作为excel表
我有一个简单的弹簧批处理程序,它从INPUT文件中读取数据并写入OUTPUT文件。Spring批处理 - 如何生成一个批处理作业的输出文件作为excel表
输入文件有50000条记录,我的块大小为1000
有输入文件即五列。一,二,三,四,五
我的要求是创建一个excel文件(.xls文件)作为输出。
创建excel文件(.xls)没有开箱即用的支持。有两种选择。
- 创建输出为CSV文件(FlatFileItemWriter),然后可以在Excel中打开 。这是最简单的选择,并且对于大多数应用程序来说足够了。
- 其他选项是实现创建 使用像Apache POI或JEXL
一些库中的Excel文件的自定义FileItemWriter如果CSV文件是不够的,你需要实现自己的ItemWriter,可以使用一个的可用Excel库(例如JExcelApi或Apache POI)将“项目”写入Excel文件。
我会从扩展ItemWriter开始。确保你最后关闭了XLS文件。
有关创建新XLS文档的示例,请参阅POI quick guide。
使用这些库的问题是,它们一次处理一行数据(我认为是这样!!)..它会不会是一个很大的性能打击? – Nik
有弹簧一批扩建工程,提供和Excel Reader和Writer开箱 - https://github.com/mdeinum/spring-batch-extensions/tree/master/spring-batch-excel
底层IT支持POI和JExcel - 尽管Excel中的较新版本的POI工作
此Spring批处理扩展仅包含Excel的ItemReader实现。 OP的要求是创建文件 –
对,我的不好。该项目不包含项目编写器扩展。 –
我也将CSV视为一种选择。但是,如果列数据本身具有“逗号”,那该怎么办?如何解决这个情况? – Nik
它需要被包含在双重qoutes - 你不必这样做,春天的批量内置支持生成CSV - 它处理所有这些情况。 – gkamal
感谢您的建议。你能详细解释一下吗?我们应该在哪里放双引号? – Nik