在pom.xml中添加依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.4</version>
</dependency>
controller
@SneakyThrows
@PostMapping("/export")
public void export(@RequestBody Entity1 tentity1) {
List resultList=new ArrayList();
CSVPrinter csvPrinter=null;
Object[] objects = null;
List<Entity2> list = EntityService.selectEntityList(tentity1);
for (int i = 0; i < list.size(); i++) {
Entity2 tentity2=list.get(i);
List<String> list1=new ArrayList();
list1.add(tentity2.getAname());
list1.add(tentity2.getBname());
list1.add(tentity2.getCname());
list1.add(tentity2.getDname());
list1.add(String.valueOf(tentity2.getQty()));
list1.add(tentity2.getTimestamp());
resultList.add(list1);
}
// 导出为CSV文件
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("YYYYMMddHHmmss");
String format = ft.format(date);
String filePath = "E:\\CSV\\数据_" + format + ".csv";
FileWriter writer = new FileWriter(filePath);
csvPrinter = CSVFormat.EXCEL.print(writer);
//csv题头
String[] cells = {"A名字", "B名字", "C名字", "D名字", "数量", "更新时间"};
CSVFormat csvFormat = CSVFormat.newFormat(',').withQuote(null).withRecordSeparator("\r\n").withIgnoreEmptyLines(true).withHeader(cells);
FileOutputStream fos = new FileOutputStream(filePath);
//防止乱码
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
byte[] uft8bom = { (byte) 0xef, (byte) 0xbb, (byte) 0xbf };
fos.write(uft8bom);
csvPrinter= new CSVPrinter(osw, csvFormat);
for (int i = 0; i < resultList.size(); i++) {
csvPrinter.printRecord(((List<?>) resultList.get(i)).toArray());
}
System.out.println("导入成功");
csvPrinter.flush();
csvPrinter.close();
}