axios下载excel踩坑记录(导出Excel总是报格式错误而且乱码)

项目中使用axios下载Excel时,遇到文件打开报错且显示乱码的问题。通过检查发现,虽然后端生成并返回了文件流,前端接收到的数据类型为字符串而非预期的blob。问题根源在于MockJS导致请求被封装,即使未配置拦截下载请求,也会对所有请求进行处理。解决方案是禁用MockJS,避免其影响下载请求。这样便能成功导出Excel文件。
摘要由CSDN通过智能技术生成

项目需要,有一个功能是后端生成Excel文件并且写入文件流,前台接收并提示用户导出文件。

看起来是个很简单的功能,网上关于这个功能的解决办法也有很多,基本都差不多,大致如下:

  • 后端:
@RequestMapping(value = "/exportGatherXls", method = RequestMethod.POST)
  public void exportGatherXls(HttpServletResponse response) {
    //导出Excel
    response.setContentType("application/vnd.ms-excel;charset=utf-8");
    String codedFileName = "test";
    OutputStream fOut = null;
    try {
      String newtitle = new String(codedFileName.getBytes("UTF-8"), "ISO8859-1");
      response.setHeader("content-disposition", "attachment;filename=" + newtitle + ".xls");
      Workbook workbook = new HSSFWorkbook();
      //2.创建工作簿
      Sheet sheet = workbook.createSheet();
      //3.创建标题行,测试数据
      Row titlerRow = sheet.createRow(0);
      titlerRow.c
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值