博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot实现CSV文件导出功能
阅读量:3958 次
发布时间:2019-05-24

本文共 2306 字,大约阅读时间需要 7 分钟。

前言:相信看过上篇  的童鞋已经知道了,这是一篇填坑文

正文:OK,废话不多说,让百度词条给我们解释解释什么叫TMD惊喜

简单一下词条给出的释意:(CSV)逗号分隔值文件格式,逗号分隔值,其文件以纯文本形式存储表格数据

那我们大家立刻开始试试吧!

这里的导出的方式,采用的比较常规的以流的写回浏览器 

/**     * 导出临时文件     *     * @param response     * @return     */    @GetMapping("/exportTempFile")    @ApiOperation("导出临时文件")    @ControllerLog(desc = "导出临时文件")    public void exportTempFile(HttpServletResponse response) {        try {            //导出临时文件,导出格式为csv文件            fundPoolService.exportResult(response);        } catch (Exception e) {            log.error("exportTempFile 导出临时文件异常 error {}.param:{}",e,JSONObject.toJSONString(response));        }    }

 获取文件名的时候,需要注意不同系统路径问题

/**     * 导出临时文件     *     * @param  response     * @return     */    public void exportResult(HttpServletResponse response){        BufferedWriter csvWtriter = null;        try {            // 表格头            Object[] head = {"xx1", "xx2", "xx3"};            List headList = Arrays.asList(head);            File resultFile = new File(fixTempFile());            if(ObjectUtils.isEmpty(resultFile)){                throw new BusinessException("导出临时文件异常,临时文件不存在");            }            //按行读取结果文件            List
> dataList = createDataList(new ArrayList<>()); //文件名 String fileName = FileUtil.readString(fixFileTime(),"UTF-8"); //文件下载 response.setContentType("application/csv;charset=gb18030"); response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8")); ServletOutputStream out = response.getOutputStream(); csvWtriter = new BufferedWriter(new OutputStreamWriter(out, "GB2312"), 1024); // 写入文件头部 writeRow(headList, csvWtriter); // 写入文件内容 for (List row : dataList) { writeRow(row, csvWtriter); } csvWtriter.flush(); } catch (Exception e) { log.error("ExportResult info error.param:{}", JSONObject.toJSONString(response), e); } finally { try { if(!ObjectUtils.isEmpty(csvWtriter)){ csvWtriter.close(); } } catch (IOException e) { log.error("ExportResult info error.param:{}", JSONObject.toJSONString(response), e); } } }

 

转载地址:http://vwozi.baihongyu.com/

你可能感兴趣的文章
看看你对Linux到底了解多少?
查看>>
网上看到的:ARM入门最好的文章(转)
查看>>
中国最美情诗100句
查看>>
javascript注册window的onload事件问题研究
查看>>
客户端技术分页控件javascript+css,可用于任何服务器端技术
查看>>
学习Swing 的网站[转]
查看>>
Google App engine 的第一个应用 midispot
查看>>
提问的智慧
查看>>
关于dom4j无法解析xmlns问题及生成非UTF-8字符集乱码问题的解决
查看>>
很好的一篇文章 如果让我重做一次研究生 王汎森
查看>>
保护U盘批处理文件
查看>>
hibernate 自动导入sql 文件import.sql 国际化编码的问题的解决方案
查看>>
第七颗头骨 & 忘魂花 凤凰
查看>>
李小龙哲学之言
查看>>
潜伏中体现的潜规则
查看>>
[Java] Appfuse 源代码分析
查看>>
[Java] Appfuse 最佳实践
查看>>
[心情] 如果有一天
查看>>
[随笔] 6月近况小记 & 一个站点优化问题
查看>>
[Perl] 关于 Bugzilla 的一些问题与研究
查看>>