从openpyxl循环行获取单元格数据

时间:2017-12-27 16:44:10

标签: python excel python-3.x tuples openpyxl

我有一些代码可以在python脚本中创建来自OpenPyXL的元组,如下所示:

for row in sheet.iter_rows(min_row=2, max_col=2, max_row=50)
    print(row)

返回

(<Cell 'States'.A2>, <Cell 'States'.B2>)
(<Cell 'States'.A3>, <Cell 'States'.B3>)
...
(<Cell 'States'.A50>, <Cell 'States'.B50>)

我想从&#39; A-column&#39;中提取值。以及&#39; B-column&#39;通过使用cell.value并进一步拆分&lt; B-column&#39;用逗号分隔的值(例如7,100或100,7)然后将值添加到字典中,如下所示:

StatesPriority = {
    A2 : (B2.ValueBeforeComma, B2.ValueAfterComma)
    A3 : (B3.ValueBeforeComma, B3.ValueAfterComma)
    ...
    A50 : (B50.ValueBeforeComma, B50.ValueAfterComma)
}

但是,我更关心从返回的元组中获取值的OpenPyXL函数。我想我可以用一点点时间用逗号来判断分割值。

Python版本:3.6.3 OpenPyXL版本:2.4.9

感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

row是一个包含两个元素的元组,因此您可以在分配期间解压缩它:

StatesPriority = {}
for row in sheet.iter_rows(min_row=2, max_col=2, max_row=50)
    cell_a, cell_b = row
    StatesPriority[cell_a.value] = (tuple(cell_b.value.split(','))