前端js将ztree导出到excel文件中

前端js将ztree导出到excel文件中

月光魔力鸭

2023-12-21 10:09 阅读 446 喜欢 0

近期需求:将一棵树导出到excel中,树是ztree,通过插件Table2excel导出table到excel中。

依赖

获取ztree的节点

var list = treeObj.getNodes();

将ztree的nodes转化为table 数组并获取对应的合并数据

//将ztree导出到excel中
var list = treeObj.getNodes();
//递归循环list,(children)
var arr = [];
var maxRows = 0;
function getDeepData(children,level){
    for(var i=0;i<children.length;i++){
        var obj = children[i];
        var name = obj.name;
        var children2 = obj.children;
        if(!children2 || children2.length == 0){//最下一层级
            arr[maxRows] = arr[maxRows]||[];
            arr[maxRows][level] = {name:name,rowspan:1};
            maxRows ++;
        }else{
            arr[maxRows] = arr[maxRows]||[];
            arr[maxRows][level] = {name:name};
            var last = maxRows;
            getDeepData(children2,level+1);
            arr[last][level].rowspan = maxRows - last;
        }
    }
}
getDeepData(list,0);

构建table html

var allHtml = '';
for(var i=0;i<arr.length;i++){
    var row = arr[i];
    var html = '<tr>';
    for(var j=0;j<row.length;j++){
        html += '<td rowspan="'+(null == row[j]||undefined == row[j] ? 1 :(row[j].rowspan||1))+'" style="'+(null == row[j]||undefined == row[j]? 'display:none;' : '')+'">'+(null == row[j]||undefined == row[j]  ? '' : row[j].name)+'</td>';
    }
    html += '</tr>';
    allHtml += html;

}
$('#table').append(allHtml);

导出excel

new Table2Excel().export($('#table'),"文件名");

table2excel : https://github.com/rusty1s/table2excel

转载请注明出处: https://chrunlee.cn/article/export-ztree-to-excel.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
web开发中,前台有时候会需要一个随机数或序列,通常来说,这个随机数可能只在当前页面中使用,并不需要太过严格,大体上重复率低即可。
偶尔练习下canvas,这里简单记录下常用API,防止遗忘..加深记忆..努力提高..争取突破...daydayup
在页面中不同的frame之间进行相互调用的话,我们可以通过frame获取对应的window然后进行调用,但是如果是浏览器不同的tab之间呢?
最近做个nodejs的项目,使用了thinkjs 3.0 的框架,编辑器为vs code ,之前用的好好的,每次 . 后都有提示的,可是使用了多模块后发现.. model的提示没有了..
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。
nvm install 16.15.0 : The process cannot access the file because it is being used by another process
做作业的时候,需要在手机上预览下,但是发现如果想在移动端上展示A4样子的作业还是挺麻烦的,最后还是准备通过图片来展示,然后移动端缩放呗。。
本文概括了递归、闭包、原型、继承,理清这些基本的概念,有助于你接纳更多的东西,我们会在下一个章节对函数进行更深入的讨论。