文件处理

  request
    .get("/operate-benchmarking/benchmarking/getReportTb2", {
      params: {
        reportName: reportName,
      },
      // responseType: "blob",
    })
    .then((res) => {
      console.log(res.data);

     

      //  --------------下面的代码是下载--start-----------------
      // // 假设 base64String 是您提供的Base64编码的Excel文件内容
      // // const base64String = "UEsDBBQACAgIAPtcrlg..."; // 替换为您的Base64字符串
      // const base64String = res.data; // 替换为您的Base64字符串
      // // 将Base64字符串解码为Blob对象
      // function base64toBlob(base64Data, contentType) {
      //   contentType = contentType || "";
      //   const sliceSize = 1024;
      //   const byteCharacters = atob(base64Data);
      //   const byteArrays = [];
      //   for (
      //     let offset = 0;
      //     offset < byteCharacters.length;
      //     offset += sliceSize
      //   ) {
      //     const slice = byteCharacters.slice(offset, offset + sliceSize);
      //     const byteNumbers = new Array(slice.length);
      //     for (let i = 0; i < slice.length; i++) {
      //       byteNumbers[i] = slice.charCodeAt(i);
      //     }
      //     const byteArray = new Uint8Array(byteNumbers);
      //     byteArrays.push(byteArray);
      //   }

      //   const blob = new Blob(byteArrays, { type: contentType });
      //   return blob;
      // }

      // // 调用函数并设置文件类型为application/vnd.openxmlformats-officedocument.spreadsheetml.sheet(Excel的OOXML格式)
      // const blob = base64toBlob(
      //   base64String,
      //   "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
      // );

      // // 创建一个下载链接
      // const url = window.URL.createObjectURL(blob);
      // const link = document.createElement("a");
      // link.href = url;
      // link.setAttribute("download", "myfile.xlsx"); // 设置下载的文件名
      // document.body.appendChild(link);
      // // 触发下载
      // link.click();

      // // 清理
      // window.URL.revokeObjectURL(url);
      // document.body.removeChild(link);
      //  --------------上面的代码是下载--end-----------------
      // 返回
    });

  

const loadExcel = (excelBase64) => {
  // 将Base64编码转换为Blob对象
  const byteCharacters = atob(excelBase64);
  const byteArrays = [];
  for (let offset = 0; offset < byteCharacters.length; offset += 1024) {
    const slice = byteCharacters.slice(offset, offset + 1024);
    const byteNumbers = new Array(slice.length);
    for (let i = 0; i < slice.length; i++) {
      byteNumbers[i] = slice.charCodeAt(i);
    }
    const byteArray = new Uint8Array(byteNumbers);
    byteArrays.push(byteArray);
  }
  const blob = new Blob(byteArrays, {
    type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
  });
  // 创建Blob URL并赋值给excelUrl
  excelUrl.value = URL.createObjectURL(blob);
};

  

posted @ 2024-06-18 17:51  龙旋风  阅读(1)  评论(0编辑  收藏  举报