Java http Post下载Excel文件 xxx.xlsx 失败解决,及传输文件类型ContentType对应关系

简介: 查询数据库生成Excel下载功能。本来很简单的功能却搞了挺久的,主要因为下载的文件打不开,且此功能已是基本功能。这里记录下来方便后面查阅。ContentType对应的文件关系查看下面连接https://www.runoob.com/http/mime-types.html

1、后端代码spring cloud项目

@RequestMapping("/printexcel")
@ResponseBody
public void printSaleInvoiceToExcel( HttpServletResponse response) throws ParseException {
    // 查询数据,生成Excel返回byte数组
    byte[] databyte = saleInvoiceCustomsExcelService.saleInvoiceExportExcel(new Context());
    OutputStream out = null;
    try {
                  //重点:要写对类型,要不然下载文件打不开
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        out = response.getOutputStream();
        out.write(databyte);
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        try {
            if(out!=null) out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
AI 代码解读

2、nuxt vue前端写法,后面有时间再优化改进
var _this = this;

  var query = _this.query;
  _this.loadingFlag = true;
  _this.$axios.post("/printexcel", { query: query }, { responseType: "arraybuffer" }).then((result) => {
      var blob = new Blob([result], {
        type: "application/vnd.ms-excel;charset=utf-8"
      });
      var downloadElement = document.createElement("a");
      var href = window.URL.createObjectURL(blob); //创建下载的链接
      downloadElement.style.display = "none";
      downloadElement.href = href;
      downloadElement.download = "allProcurementPlanInfo.xlsx"; //下载后文件名
      document.body.appendChild(downloadElement);
      downloadElement.click(); //点击下载
      document.body.removeChild(downloadElement); //下载完成移除元素
      window.URL.revokeObjectURL(href); //释放掉blob对象
      _this.loadingFlag = false;
    }).catch(() => {
      this.$message({
        type: 'info',
        message: 'download canceled'  
      });
      _this.loadingFlag = false;
    });
AI 代码解读

3、对照部分截图
详情看下面的连接,暂时没有时间去找官网
https://www.runoob.com/http/mime-types.html
image.png

参考文章:https://blog.csdn.net/qweasdassd/article/details/122553718

目录
打赏
0
0
0
0
8
分享
相关文章
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
57 8
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
260 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
119 34
|
2月前
|
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分到不同的工作表中。本文通过一个示例代码展示了如何生成一个包含总成绩表和三个班级表的Excel文件。代码首先创建了一个包含学生姓名、班级和各科成绩的数据框,然后按班级分组,将每个班级的数据分别写入不同的工作表。最后,生成的Excel文件将包含四个工作表,分别为总成绩表和三个班级的成绩表。
52 6
按条件将Excel文件拆分到不同的工作表
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
40 0
|
2月前
|
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
73 6
|
2月前
|
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分为多个工作表。本文通过一个具体示例,展示了如何根据学生班级将成绩数据拆分到不同的工作表中,并生成一个包含总成绩表和各班级成绩表的Excel文件。代码简洁明了,适合初学者学习和应用。
65 6
|
3月前
|
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
50 1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
在运行一个group by的sql时,抛出以下错误信息: Task with the most failures(4):  -----Task ID:  task_201411191723_723592_m_000004URL:  http://DDS0204.
995 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等