1

有没有办法使用 JXLS(或 JETT)为分层树生成报告?例如模型是这样的:

-node1
--node11
--node12
---node121
---node1211
--node13
-node2

我需要用两列渲染结果:

| node name | node value
| node1     | =sum(node11, node12, node13)
| node11    | 5
| node12    | =sum(node121)
| node121   | =sum(node1211)
| node1211  | 10
| node13    | 15
| node2     | 20

……

我不知道树中嵌套级别的数量。我的问题是,对于每个父节点,excel中的渲染值必须是一个公式,其中包含直接子节点的总和......等等。只有叶节点必须使用实际节点值呈现。

谢谢

4

1 回答 1

0

从这里获取代码: 递归遍历树的深度优先问题

public void traverseTree(Tree tree) {

    // print, increment counter, whatever
    System.out.println(tree.toString());
    // Do your code to build your sum formula string here and store it on your tree node.

    // traverse children
    int childCount = tree.getChildCount();
    if (childCount == 0) {
        // Overwrite the "forumla" you were building with something denoting that it is a leaf node here.
    } else {
        for (int i = 0; i < childCount; i++) {
            Tree child = tree.getChild(i);
            traverseTree(child);
        }
    }
}

将构建的公式存储在节点上后,再次遍历它,但这次代替 System.out.println(tree.toString()); 行 - 实际上使用 JXLS API 将其写入 Excel。

(请注意,代替“树”对象,您可能需要定义自己的树类来包装树节点并允许您存储公式信息。)

于 2017-03-21T20:07:23.613 回答