使用Excel工作表创建树结构的算法

时间:2015-08-22 16:44:52

标签: php algorithm tree tree-traversal

使用以下Excel工作表创建树结构时遇到问题。

enter image description here

我想将这些单元格元素存储为类别。每个类别之间有很多对很多的关系。这意味着每个父类别都有许多子类别,每个子类别也有许多父类别。

enter image description here

我将使用PHP作为语言,但这并不重要。

如果有任何人有这种经验或任何想法将树类(父母子女关系)的类别遍历和存储,那对我来说将非常有帮助。

// ==============更新===================

列数可能不同。这意味着有许多excel文件及其标题'计数和标题名称可能不同。因此,我需要找到所有工作表的通用解决方案。

感谢。

2 个答案:

答案 0 :(得分:0)

首先创建完全填充的表格,如:

enter image description here

然后选择单元格 A2 并应用条件格式以使单元格"不可见"如果它与上面的单元格具有相同的值:

enter image description here

并复制它们的格式向下和跨越。

enter image description here

您现在可以获得所需的视觉效果,并可以使用标准Excel函数处理表格。

答案 1 :(得分:0)

我已经解决了这个问题。

  1. 在第一行中迭代单元格项目时,计算其计数 列。
  2. 使用列计数动态创建每列的变量。它仅适用于工作表的第一行。

    some-fn
  3. 将每个单元格数据存储在相关变量

    $ {$ category_header。“_”。$ i} = $ last_inserted_row_category_id;

  4. 检查单元格数据是否为空

  5. 将数据项添加到类别表
  6. 如果每列都不为空,则只更新相关变量
  7. 通过将当前单元格元素编号减1来获取父变量数据。这是以前的细胞数据。如果列数据为空,请不要更新相关变量。

    profileSQL=true