java使用CsvPrinter导出csv


//创建输出流,防止Excel打开乱码

public static CSVPrinter getCsvPrinter(String fileName, String[] header) throws Exception {
    OutputStream out = new FileOutputStream("地址"+ fileName);
CSVFormat csvFormat = CSVFormat.DEFAULT.withHeader(header);
OutputStreamWriter osw = new OutputStreamWriter(out);
// 防止Excel打开乱码
byte[] bytes = {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF};
osw.write(new String(bytes));
return new CSVPrinter(osw, csvFormat);
}
int count = 数据大小
limit(默认)与count取小
CSVPrinter csvPrinter = CsvExportUtil.getCsvPrinter(fileName, "表头");
for (int i = 0; i < (int) Math.ceil(count * 1.0 / limit); i++) {
  //进行分页获取
List<> list = xxxMapper.getList(条件, i * limit, limit);
exportCommon(list, csvPrinter);
}
csvPrinter.flush();
//记得关闭
csvPrinter.close();
return fileName;

exportCommon()方法就是将传进来的实体类导出到csv中
其中
csvPrinter.printRecord(可以按你表头的顺序放入值,也可以放入list,注意顺序就行)行

csvPrinter.printRecords(可以按你表头的顺序放入值,也可以放入list,注意顺序就行)列


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM