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);
};