有没有办法使用 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 中的渲染值必须是一个包含直接子节点之和的公式......等等。只有叶节点必须使用实际节点值进行渲染。
谢谢
从这里获取代码: Traversing a tree recursively in depth first problems
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。
(请注意,您可能需要定义自己的 Tree 类来包装 Tree 节点并允许您存储公式信息,以代替“Tree”对象。)
我是一名优秀的程序员,十分优秀!