excle层级结构转tree data

42 阅读1分钟

原始文件 image.png 将excle复制到数据库中

image.png

buildTree(data) {
      const tree = [];
      let previousNames = {};
      data.forEach((item) => {
        let currentNode = tree;
        for (let nameIndex = 1; nameIndex <= 4; nameIndex++) {
          let name = item[`name${nameIndex}`];
          if (!name.trim()) {
            name = previousNames[`name${nameIndex}`];
          }
          if (name.trim() !== "") {
            let existingNode = currentNode.find((node) => node.name === name);
            if (!existingNode) {
              existingNode = { name: name, children: [] };
              currentNode.push(existingNode);
            }
            currentNode = existingNode.children;
            previousNames[`name${nameIndex}`] = name;
          }
        }
      });
      return tree;
    },

image.png