java super-csv导出表格csv文件

// 添加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: 没有好看的间距

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容