首页 > 其他 > 详细

前端导出excel文件(react)

时间:2020-03-31 18:55:25      阅读:771      评论:0      收藏:0      [点我收藏+]

前端导出excel(安装xlsx)

demo 地址https://sheetjs.com/demo/manifest.html

案列
1. 将页面的table 元素 变成excel文件并下载
import XLSX from "xlsx"
createElsx(){
// 获取表格的dom元素
var elt = document.getElementsByTagName(‘table‘)[0];
console.log(elt)
// 将表格的dom 元素转化为 excel工作薄
var wb = XLSX.utils.table_to_book(elt, {sheet:"Sheet JS"});
// 将工作薄导出为excel文件
XLSX.writeFile(wb,‘呵呵哒.xlsx‘);
}

2. 将数据转化为数组 进行导出
import XLSX from "xlsx"
createElsx(){
let arr =[
["序号",‘姓名‘,‘年纪‘],
["0",‘呵呵哒‘,‘15‘],
["1",‘12313‘,‘15‘],
]
// 将数组转化为标签页
var ws = XLSX.utils.aoa_to_sheet(arr);
// 创建工作薄
var wb = XLSX.utils.book_new()
// 将标签页插入到工作薄里
XLSX.utils.book_append_sheet(wb,ws)
// 将工作薄导出为excel文件
XLSX.writeFile(wb,‘呵呵哒.xlsx‘);
}

3.如果excel数据非常大
后端将数据变成excel 前端直接下载这个文件

a.后端产生excel

let sheet =XLSX.utils.aoa_to_sheet(arr)
let book = XLSX.utils.book_new()
XLSX.utils.book_append_sheet(book,sheet)
XLSX.writeFile(book,‘hehe.xlsx‘)

// 返回数据的接口
app.get(‘/getelsx‘,(req,res)=>{
let file = fs.readFileSync(‘./hehe.xlsx‘)
// 让文件作为附件的形式下载
res.attachment(‘商品.xlsx‘)
res.send(file)
})
app.listen(3000,()=>{
console.log("server start")
})

b.前端进行下载

<button onclick=‘download()‘>open下载</button>
<iframe name=‘myFrame‘ style="display:none;"></iframe>
<script>
function download(){
window.open(‘http://localhost:3000/getelsx‘,‘myFrame‘)
}
</script>
注意:通过iframe可以不让浏览器闪一下

前端导出excel文件(react)

原文:https://www.cnblogs.com/imbacool/p/12606773.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!