需要加responseType: 'blob',否则文件会损坏 注意,excel流文件一定要在请求的时候加上响应类型字段,也就是:responseType: 'blob'或者,responseType: 'arraybuffer' ,否则下载出来的excel文件就会损坏,就会打不开。损坏文件如下图所示: ArrayBuffer和Blob一样,都是二进制数据的容器,而ArrayBuffer相比更为底层一些,他可以...
检查文件扩展名:确保生成的Excel文件具有正确的扩展名。可以使用Vue.js的文件处理功能来指定文件扩展名,以确保操作系统正确识别文件类型。 对于Vue.js下载Excel文件损坏的问题,腾讯云提供了一系列与文件处理相关的产品和服务,例如: 腾讯云对象存储(COS):用于存储和管理文件的云存储服务。可以使用COS来存储生成的Excel文件...
vue导出excel文件损坏 export function downloadFile(obj, name, suffix = "xlsx") { const url = window.URL.createObjectURL(new Blob([obj], {type: "application/vnd.ms-excel"})) const link = document.createElement('a') link.style.display = 'none' link.href = url const fileName = name + '...
方式一:后端直接返回excel表格地址,前端点击下载。这种方式适用于固定模板表格内容的情况,但会导致后端excel越存越多,造成冗余。为解决此问题,后端可设置定时器清理excel文件。方式二:后端返回blob流文件,这种方式不会造成后端excel越存越多,目前使用较多。方式三:前端保存表格内容,下载并使用excel插件...
3。js代码在本项目中下载的excel打开提示文件损坏。 原因: 项目中前期引入了 mockjs 进行模拟数据请求。导致请求结果被mock拦截,修改了返回数据类型。 下面是mock拦截修改后的返回对象,data变成string类型,显示为乱码。返回的请求为MockXMLHttpRequest类型 注释到 mockjs的引用后,data类型为正常的blob类型 ...
答案: 使用axios和vue.js下载Excel文件时,文件损坏的原因可能是由于文件的编码格式不正确或者下载过程中出现了错误。为了解决这个问题,可以采取以下步骤: 确保服务器端正确设置了响应头的Content-Type为application/vnd.ms-excel,以指定下载的文件类型为Excel。
prototype.$download = (res, type = "application/vnd.ms-excel") => { let fileNames = res.headers["content-disposition"]; let blob = new Blob([res.data], { type: type }); let fileName = ""; if (fileNames.indexOf('"') > 0) { fileName = decodeURI(fileNames.match(/"(.*...
Blob对象表示一个不可变、原始数据的类文件对象,通常我也叫它二进制流对象。我们可以通过Blob对象实现导出Excel功能,先放上代码: <el-button @click="exportExcel()">导出</el-button> methods: { exportExcel(){varparams={ XX:xx//额外需要携带的请求体}this.$axios.get('/XX/XX',{ params: ...
如果你只是从后端接收文件并触发下载,那么这部分可能与你使用的库无关。 检查生成的Excel文件是否完整无损: 在前端接收到文件并触发下载后,检查下载的Excel文件是否完整。你可以尝试打开文件的属性,查看文件大小是否与预期相符。 如果文件大小异常或文件损坏,可能是后端在生成或传输文件时出现了问题。 尝试使用不同的Ex...