使用 Django 将嵌套列表输出到 xlsx
Output nested list to xlsx using Django
我有一个复杂的模型嵌套列表,如下所示:
hierarchy_tree = ['0000', 'hierarchy' [['0000-22', 'hierarchy2', [['0000-33', 'hiearchy3', [['0000-44-4444', 'hiearchy4', [['0000-55-5555-55', 'hiearchy5', []]]]]]]]]]
我可以使用点符号轻松地在模板中显示它 - 示例:
{% for hierarchy in hierarchy_tree %}
<tr class="item" data-id="{{system.0}}" data-parent="">
<td>
{{hierarchy.0}}
</td>
<td>
{{hierarchy.1.genericname}}
</td>
现在我正在尝试将其输出到 .xlsx 文件,但我不知道如何通过此列表的所有级别?我怎样才能做我在模板中做的同样的事情来将这个列表传递给 excel?
我已经尝试了以下将 return 第一个列表但抛出错误(ValueError at /post/1/export/hierarchy/ - cannot covert(my passed in list)to excel)子列表是因为我相信它们的嵌套方式。
for r in hierarchy_tree:
ws.append(r)
我也尝试过使用其他方法访问子列表,但多次失败。
所以底线是我需要弄清楚如何访问和传递子列表的值 - 任何想法或帮助将不胜感激?
谢谢
Comment: ... is just 1 row in the list ...
Python print
一行 类型 list
的一个实例,用 [ ... ] 包围.
您的 hierarchy_tree
属于类型 list of n lists.
n't list
in hierarchy_tree
以 [ 开始并以 ][=36 结束=].
您必须将 hierarchy_tree
分成 行数据 。
例如:
def treeWalk(tree, level=0):
rData = [ '' for i in range(level)]
for item in tree:
if isinstance(item, list):
if len(rData) > level:
ws.append(rData)
level += 1
treeWalk(item, level)
return
rData.append(item)
treeWalk(hierarchy_tree)
测试 Python:3.4.2 - openpyxl:2.4.1 - LibreOffice: 4.3.3.2
我有一个复杂的模型嵌套列表,如下所示:
hierarchy_tree = ['0000', 'hierarchy' [['0000-22', 'hierarchy2', [['0000-33', 'hiearchy3', [['0000-44-4444', 'hiearchy4', [['0000-55-5555-55', 'hiearchy5', []]]]]]]]]]
我可以使用点符号轻松地在模板中显示它 - 示例:
{% for hierarchy in hierarchy_tree %}
<tr class="item" data-id="{{system.0}}" data-parent="">
<td>
{{hierarchy.0}}
</td>
<td>
{{hierarchy.1.genericname}}
</td>
现在我正在尝试将其输出到 .xlsx 文件,但我不知道如何通过此列表的所有级别?我怎样才能做我在模板中做的同样的事情来将这个列表传递给 excel?
我已经尝试了以下将 return 第一个列表但抛出错误(ValueError at /post/1/export/hierarchy/ - cannot covert(my passed in list)to excel)子列表是因为我相信它们的嵌套方式。
for r in hierarchy_tree:
ws.append(r)
我也尝试过使用其他方法访问子列表,但多次失败。
所以底线是我需要弄清楚如何访问和传递子列表的值 - 任何想法或帮助将不胜感激?
谢谢
Comment: ... is just 1 row in the list ...
Python print
一行 类型 list
的一个实例,用 [ ... ] 包围.
您的 hierarchy_tree
属于类型 list of n lists.
n't list
in hierarchy_tree
以 [ 开始并以 ][=36 结束=].
您必须将 hierarchy_tree
分成 行数据 。
例如:
def treeWalk(tree, level=0):
rData = [ '' for i in range(level)]
for item in tree:
if isinstance(item, list):
if len(rData) > level:
ws.append(rData)
level += 1
treeWalk(item, level)
return
rData.append(item)
treeWalk(hierarchy_tree)
测试 Python:3.4.2 - openpyxl:2.4.1 - LibreOffice: 4.3.3.2