最近在项目中,有这样一个需求,把每天的交易数据写入到Excle中,并实现下载。刚开始,使用CsvWriter对象把表中的数据按每一条记录写入,最后感觉这样的效率也还可以。重要一点的是:该功能需要实现不同对象或者实体的交易记录都可以导入Excle中,也就是通用的功能。
使用CsvWriter对象写入数据
查询数据时候,得到的结果是List<Map<String,Object>>,Map中的key就是表中表头的字段名,所以表头字段写在properties文件中,通过读取properties文件获取所有字段。
xxx.properties
写入Excle文件的代码:
至此,把数据写入Excle的功能完成了。但是用Excle打开时,有些纯数字的数据会出现用科学计数法表示,这样不方便进行统计和查询,因此,就使用POI来把数据写入Excle,并且需要数据的量较大,这里就选择SXSSFWorkbook对象,这样也解决了纯数字出现科学计数法的问题了。
使用POI中的SXSSFWorkbook对象写入数据
代码:
到这里,使用POI和CsvWriter对象把数据写入Excle中完成了。