前端导出/下载怎么写?

在第一次写导出/下载word、excel的时候你是否也是一脸懵?

今天具体记录一下导出改怎么写。

一般的话后端会要求你以json格式(JSON.stringify)传一些列表 id 或其他的字段。然后请求头里也许会让你规定内容类型,我这里为json格式,headers:{  'content-type':'application/json' }。

后端会返回给你一些编码,类似这种:

 怎样对这些编码进行处理呢?

可以对数据类型进行处理,我这里使用的是blob格式,有好几种感兴趣可以搜一下('arryaybuffer'、'document'、'json'、'stream'、'text'),我就不过多介绍了。

 请求成功的,打印出来的数据

然后呢,就是编写代码啦。

wordonclick(){
  //以我的导出word文档为例
  doneaWord(JSON.stringify({prodid:this.idlist})).then(res =>{
      if(res.status == 200 ){
        //这一行是拿到文件名称,也可以自己命名 let filename = '导出word文档.docx' 要注意后缀
        //decodeURL是解码方法 把filename 解码为中文
        let filename = decodeURL(res.headers['content-disposition'].split('filename='[1])
        //这里的type为word  表格为:application/msexcel
        let blob = new Blob([res.data],{type:'application/msword'})
        let objecturl = URL.createObjectURL(blob)	
        let link = document.createElement('a')	
        link.href = objecturl	
        link.setAttribute('download',filename);
        document.body.appendchild(link)	
        // 自执行点击事件
        link.click();
        document.body.removeChild(link)
      }
   })
}

大致流程就是这些,如果有疑问欢迎私信,看完的同学记得点赞哦!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端导出Excel下载可以通过以下步骤实现。首先,你需要准备一个Excel模板,可以使用HTML表格来创建模板。在模板中,你可以使用表格标签来定义Excel的结构和内容。\[1\]然后,在封装请求时,需要设置responseType为"blob",以确保返回的数据类型是二进制流。\[2\]接下来,你可以使用JavaScript来触发导出操作。可以在按钮的点击事件中调用一个函数,该函数将表格数据转换为Excel格式并触发下载操作。\[3\]在这个函数中,你可以使用JSON数据来填充Excel表格的内容。最后,将生成的Excel文件提供给用户进行下载。 #### 引用[.reference_title] - *1* *3* [前后端导出/下载excel方法](https://blog.csdn.net/snsHL9db69ccu1aIKl9r/article/details/93377280)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [前端实现导出下载excel文件(Blob数据类型)](https://blog.csdn.net/G_ing/article/details/128170853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值