vue纯前端实现下载excel文件,本地和测试环境都可正常下载

vue2纯前端实现下载excel文件,本地和测试环境都可正常下载。
1、把后端给的excel文件放到本地项目文件夹中,位置如图所示:
请添加图片描述
2、在需要展示下载功能的页面中引入该excel文件,如图所示:
请添加图片描述
3、使用a链接,href绑定引入的excel文件路径,并添加download属性,download属性值就是下载下来的文件名称,如图所示:
请添加图片描述
4、重点问题来了,引入文件路径后会发现项目报缺少loader的错误,所以要安装file-loader:
npm install file-loader
5、安装完依赖之后还要在vue.config.js中增加配置:
在这里插入图片描述
6、然后重启项目,这样就实现下载功能啦~
之前尝试过别的方法,可以实现本地下载,在测试环境却报404,或者下载出的excel文件打开是空内容的情况,这种方法亲测不管是本地还是测试环境都没问题哦!
在这里插入图片描述

本文参考文章:
https://zhuanlan.zhihu.com/p/557556752
https://www.jianshu.com/p/5318ce68a6aa

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在前端 Vue实现下载 Excel,你可以使用第三方库如 `xlsx` 或者 `file-saver`。其中,`xlsx` 库用于生成 Excel 文件,而 `file-saver` 库则用于将生成的文件保存到本地。 以下是一个简单的示例: 1. 首先,安装库: ```bash npm install xlsx file-saver --save ``` 2. 在 Vue 组件中导入库: ```javascript import XLSX from 'xlsx'; import FileSaver from 'file-saver'; ``` 3. 在组件中定义一个方法来生成并下载 Excel 文件: ```javascript methods: { downloadExcel() { //创建一个工作簿 const wb = XLSX.utils.book_new(); //创建一个工作表 const ws = XLSX.utils.json_to_sheet([{ name: 'John', age: 28 },{ name: 'Jane', age: 32 }]); //将工作表添加到工作簿中 XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); //将工作簿转换成二进制数据流 const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' }); //将二进制数据流转换成Blob对象 const blob = new Blob([s2ab(wbout)], { type: 'application/octet-stream' }); //使用file-saver库将文件保存到本地 FileSaver.saveAs(blob, 'example.xlsx'); } } ``` 4. 在模板中添加一个下载按钮,并绑定上述方法: ```html <template> <button @click="downloadExcel">下载Excel文件</button> </template> ``` 注意,上述代码中的 `s2ab` 是一个辅助函数,用于将字符串转换成二进制数组: ```javascript function s2ab(s) { const buf = new ArrayBuffer(s.length); const view = new Uint8Array(buf); for (let i = 0; i < s.length; i++) { view[i] = s.charCodeAt(i) & 0xFF; } return buf; } ``` 这样,当用户点击下载按钮时,就会生成并下载一个名为 `example.xlsx` 的 Excel 文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值