vue下载excel时,如果excel有多个sheet,打开失败

发布于 2022-09-13 00:41:56 字数 1165 浏览 8 评论 0

excel有多个sheet时,可以下载,但是打开时提示文件损坏,打不开;但是只有一个sheet时是可以下载和打开的

下面是有多个sheet的情况
image.png

下面是只有一个sheet的情况(可以打开)
image.png

下载的方式是这样的

//下载全局方法
Vue.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(/"(.*)"$/)[1]);
    } else {
        fileName = decodeURI(fileNames.match(/=(.*)$/)[1]);
    }
    if ("download" in document.createElement("a")) {
        // 非IE下载
        const elink = document.createElement("a");
        elink.download = fileName;
        elink.style.display = "none";
        elink.href = URL.createObjectURL(blob);
        document.body.appendChild(elink);
        elink.click();
        URL.revokeObjectURL(elink.href); // 释放URL 对象
        document.body.removeChild(elink);
    } else {
        // IE10+下载
        navigator.msSaveBlob(blob, fileName);
    }
};   

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文