美文网首页
java super-csv导出表格csv文件

java super-csv导出表格csv文件

作者: Ann_l | 来源:发表于2019-05-07 11:10 被阅读0次
// 添加super-csv依赖
  <dependency>
            <groupId>net.sf.supercsv</groupId>
            <artifactId>super-csv</artifactId>
            <version>2.4.0</version>
</dependency>
// 后端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<BootPercentageResp> bootPercentageList = appsService.bootPercentage(); // 这是一个业务代码 返回我要导出去的数据
        for (BootPercentageResp bootPercentage : bootPercentageList) {
            csvWriter.write(bootPercentage, header);
        }

        csvWriter.close();

    }
// 前端
<a href="/你写的接口"></a>

官方文档
http://super-csv.github.io/super-csv/examples_writing.html

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<String, List<UpgradeInfoResp>> 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: 没有好看的间距

相关文章

网友评论

      本文标题:java super-csv导出表格csv文件

      本文链接:https://www.haomeiwen.com/subject/sexeoqtx.html