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

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

月光魔力鸭

2023-12-21 10:09 阅读 442 喜欢 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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
在项目开发过程中,分页是少不了的,之前封装了一个分页组件,样式是基于bootstrap的样式,当然也可以自己来修改
jsQR 是一款纯粹的由javascript实现的二维码识别库,可以在浏览器端使用,也可以在后端node.js环境使用。我之前使用过其他的识别库,例如:qrcode-reader 或其他,在使用上都比较麻烦,而且识别率并不高。jsQR是后来发现的,感觉(没有实际对比验证)jsQR识别率要更高些,使用起来也更简单,不需要安装其他依赖软件。
开发的项目中有使用到微信开发,由于之前偶尔才用一次,也是用的别人的地址和测试号,这里记录下自己的操作。防止后续遗忘。
突然来了一个调研任务,想要实现一个类似3D虚拟展厅类似的需求,主要就是放一些学生的作品,然后预览啥的,效果还是要全景的效果。 经过一番调查,最终锁定了以前从未接触过的krpano。
新增需求:在tinymce上增加一个着重号的插件
在我们通过canvs画图的时候经常会用到圆,且需要计算出圆上某点的坐标,由于我数学没学好,总是记不得怎么获取,这里记录下,加深记忆
web开发中,前台有时候会需要一个随机数或序列,通常来说,这个随机数可能只在当前页面中使用,并不需要太过严格,大体上重复率低即可。
在web开发过程中,现在JSON 已经到了俯拾皆是的地步了,操作JSON对于JS来说非常简单,那么我们对于JSON的转化是如何应对的呢?