js vue base64 byte 转 为文件格式 (以excel为例)

1.后端组装数据

  byte[] bytesExcel;
  String base64Excel;
        try {
            Workbook workbook = FileUtil.getWorkbookByTemplateAndData("design-template.xlsx", mapExcel);
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            workbook.write(byteArrayOutputStream);
            bytesExcel = byteArrayOutputStream.toByteArray();
            base64Excel = DatatypeConverter.printBase64Binary(bytesExcel);
            byteArrayOutputStream.close();
            workbook.close();

        } catch (Exception e) {
            e.printStackTrace();
            msg = String.format("初始化模板错误:", String.valueOf(e.getMessage()));
            jsonObject.put("errorMsg", msg);
            this.SendMessage(jsonObject);
            return;
        }
   this.SendData(base64Excel, Message.MessageType.MAINTENANCE_DESIGN.name);

2.前端接收数据

//base64  byte[]  转为 excel文件格式 展示 luckyexcel 使用
export function changeToLuckyExcelFile(data, filename){
  let bstr = window.atob(data);
  let n = bstr.length;

  let u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new File([u8arr], filename, {type:'application/vnd.ms-excel'});
}

3.文件前端下载导出

      // 导出到本地
      downloadExcel() {
        // console.log(luckysheet.getAllSheets())
        // exportExcel(luckysheet.getAllSheets(), "养护设计样图");
        // console.log("excelDataCurrent",this.excelDataCurrent)
        FileSaver.saveAs(this.excelDataCurrent, '养护设计样图.xlsx')
      },

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十&年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值