java super csv_java super-csv导出表格csv文件

// 添加super-csv依赖

net.sf.supercsv

super-csv

2.4.0

// 后端controller层

@RequestMapping(value = "/apps/boot-percentage", method = RequestMethod.GET)

public void bootPercentage(HttpServletResponse response) throws IOException {

response.setCharacterEncoding("UTF-8");

response.setContentType("text/csv");

String current = new Date().toString().replace(" ", "-");

String filename = URLEncoder.encode("SpringBoot应用占比统计表-" + current + ".csv", GlobalConstants.UTF_8);

response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");

// 防止乱码出现

Writer writer = new OutputStreamWriter(response.getOutputStream(), StandardCharsets.UTF_8);

// 写入字节流,让文档以UTF-8编码

writer.write('\uFEFF');

ICsvBeanWriter csvWriter = new CsvBeanWriter(writer, CsvPreference.STANDARD_PREFERENCE);

String[] header = {"groupName", "backEndSpringBootAppsTotal", "backEndAppsTotal", "springBootPercentage"};

csvWriter.writeHeader(header);

List bootPercentageList = appsService.bootPercentage(); // 这是一个业务代码 返回我要导出去的数据

for (BootPercentageResp bootPercentage : bootPercentageList) {

csvWriter.write(bootPercentage, header);

}

csvWriter.close();

}

// 前端

Q1: 没有中文标题

/*

本来csv就是以 ,进行分割单元格 csvWriter.writeComment(""); 这个可以写入行

文档地址:[http://super-csv.github.io/super-csv/apidocs/index.html](http://super-csv.github.io/super-csv/apidocs/index.html)

*/

Map> upgradeInfoList = appsService.upgradeInfo();

for (String groupName : upgradeInfoList.keySet()) {

csvWriter.writeComment(groupName);

csvWriter.writeComment("应用名称,上线时间");

for (UpgradeInfoResp upgradeInfoResp : upgradeInfoList.get(groupName)) {

csvWriter.write(upgradeInfoResp, header);

}

csvWriter.writeComment("");

}

Q2: 没有好看的间距

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值