Posted in NodeJs onJuly 31, 2018
前言
我的项目中有一个需求:点击按钮生成可编辑的word文档订单详情的信息
我使用的前端框架是Vue.js、后台使用的是node.js
node.js生成和导出word文档我参考的是下面这两篇文章,写的挺好的(github上的那篇里面还有node.js生成word、excel、ppt的example,需要详细的可以看里面)
解决方法:利用了blob对象,Blob对象可以看做是存放二进制数据的容器,它是一个二进制大对象,是一个可以存储二进制文件的容器。
methods:{ handleClick(row){ console.log(row); var orderId = row.orderId + row.oid.toString(); console.log(orderId); this.$ajax({ method:"get", url:"http://localhost:8081/order/getDoc", responseType:'blob' }).then((res)=>{ //这里res.data是返回的blob对象 var blob = new Blob([res.data], {type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'}); //application/vnd.openxmlformats-officedocument.wordprocessingml.document这里表示doc类型 var downloadElement = document.createElement('a'); var href = window.URL.createObjectURL(blob); //创建下载的链接 downloadElement.href = href; downloadElement.download = orderId+'.docx'; //下载后文件名 document.body.appendChild(downloadElement); downloadElement.click(); //点击下载 document.body.removeChild(downloadElement); //下载完成移除元素 window.URL.revokeObjectURL(href); //释放掉blob对象 }) } }
总结
以上所述是小编给大家介绍的nodejs(officegen)+vue(axios)在客户端导出word文档的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
- Author -
风子猪声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@