前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文件下载,excel导出

文件下载,excel导出

作者头像
java攻城狮
发布2020-10-10 16:24:34
1.5K0
发布2020-10-10 16:24:34
举报
文章被收录于专栏:个人积累

实际开发中的文件下载和excel导出

在实际的开发过程中,我们经常会遇到这种需求,导出文件或者下载文件的时候,弹出保存弹框然后指定文件名或者路径然后再点保存的这种, 一般网上看到的excel文件到处,基本上看到的都是指定下载路径的,这里我针对弹框这种方式做一个说明

前端代码
代码语言:javascript
复制
exportExcel(){
    //获取弹框,并且弹出保存框
    let iframe = document.getElementById('downloadIframe');
    if (!iframe) {
      iframe = document.createElement('iframe');
      iframe.id = 'downloadIframe';
      iframe.style.display = 'none';
      document.body.appendChild(iframe);
    }
    //拼接路径,并调用相关下载的接口,返回的数据类型是bytes[]数组
    iframe.src = "http://localhost:8001/cft/user/uploadExcel"
}
后端代码
代码语言:javascript
复制
@GetMapping("/uploadExcel")
public ResponseEntity<byte []> testExportTest() throws IOException {

    String  [] excelheader  = {"项目","电话","联系人","金额","负责人","周期"};

    //创建文档对象
    HSSFWorkbook wb = new HSSFWorkbook();
    // 建立新的sheet对象(excel的表单)
    HSSFSheet sheet = wb.createSheet("项目信息统计");
    HSSFRow rowHead = sheet.createRow(0);

    // 创建第一行
    for (int i = 0; i < excelheader.length; i++) {
        rowHead.createCell(i).setCellValue(excelheader[i]);
    }
    HSSFRow row = sheet.createRow(1);
    row.createCell(0).setCellValue("社工协议");
    row.createCell(1).setCellValue("15071384121");
    row.createCell(2).setCellValue("王凯");
    row.createCell(3).setCellValue("500");
    row.createCell(4).setCellValue("周三");
    row.createCell(5).setCellValue("150");

    ByteArrayOutputStream os = new ByteArrayOutputStream();
    wb.write(os);
    os.flush();

    String fileName ="项目信息导出.xls";
    fileName = new String(fileName.getBytes("utf-8"),"ISO_8859_1");

    HttpHeaders httpHeaders = new HttpHeaders();
    httpHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    httpHeaders.setContentDispositionFormData("attachment", fileName);

    //这里需要注意的事返回的数据类型是指定的
    return new  ResponseEntity<byte[]>(os.toByteArray(),httpHeaders,HttpStatus.OK);
}

类似的,对于图片文件或者文本文件,因为浏览器默认都是直接打开的,我们需要将文件进行字节话,然后按照指定的类型返回,亦可以对文件进行下载功能

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实际开发中的文件下载和excel导出
    • 前端代码
      • 后端代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档