背景:最近使用csv进行数据导出,提高导出性能
问题:@CsvBindByName和@CsvBindByPosition不能同时用,要么是没标题要么是不是指定的排序规则
实现思路:
自定义排序规则,HeaderNameBaseMappingStrategy的writeOrder 属性可以通过set方法指定你需要的顺序
实现方案:
step1:
实现Comparator接口,通过传参指定字段顺序
step2:
内部封装HeaderColumnNameMappingStrategy get方法范型T &指定字段排序
step3: 业务调用
DTO
CsvUtil:
这样就实现了自定义排序方式
参考:
java - OpenCSV:如何使用自定义列标题和自定义列位置从 POJO 创建 CSV 文件? - SegmentFault 思否