有没有办法将 Openpyxl 中迭代的输出转换为坐标
Is there a way to convert the output of an iteration in Openpyxl to a coordinate
在 Openpyxl 中迭代一系列单元格时,
for x in ws.iter_cols(1, 32, 1, 24):
或
for x in ws['A1':'T1']:
当我打印出来时它输出这样的字符串:
print(x)
>>> <Cell 'Worksheet 1'.A1>
有没有办法获取坐标?
'A1'
或 (1, 1)
.
我对此很陌生,所以如果我错过了什么,我很抱歉
在 Openpyxl 中,worksheet['A1':'C3']
returns 行和列的元组:
((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>),
(<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>),
(<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>))
要访问第一个单元格,请使用 worksheet['A1':'C3'][0][0]
,其中 returns 一个单元格对象。
要获取单元格的范围字符串(即 'A1'),请使用 coordinate
属性。
worksheet['A1':'C3'][0][0].coordinate # A1
要获取行和列,请使用相关属性
(worksheet['A1':'C3'][0][0].row, worksheet['A1':'C3'][0][0].column) # (1,1)
要遍历一个范围,您可以遍历元组值
rng = worksheet['A1':'C3']
for r in rng:
for x in r:
print(x.coordinate, x.row, x.column)
输出
A1 1 1
B1 1 2
C1 1 3
A2 2 1
B2 2 2
C2 2 3
A3 3 1
B3 3 2
C3 3 3
您还可以使用 iter_rows
循环访问单元格。以下代码产生与上面相同的输出
for c in worksheet.iter_rows(min_row=1, max_col=3, max_row=3): # A1 - C3
for x in c:
print(x.coordinate, x.row, x.column)
在 Openpyxl 中迭代一系列单元格时,
for x in ws.iter_cols(1, 32, 1, 24):
或
for x in ws['A1':'T1']:
当我打印出来时它输出这样的字符串:
print(x)
>>> <Cell 'Worksheet 1'.A1>
有没有办法获取坐标?
'A1'
或 (1, 1)
.
我对此很陌生,所以如果我错过了什么,我很抱歉
在 Openpyxl 中,worksheet['A1':'C3']
returns 行和列的元组:
((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>),
(<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>),
(<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>))
要访问第一个单元格,请使用 worksheet['A1':'C3'][0][0]
,其中 returns 一个单元格对象。
要获取单元格的范围字符串(即 'A1'),请使用 coordinate
属性。
worksheet['A1':'C3'][0][0].coordinate # A1
要获取行和列,请使用相关属性
(worksheet['A1':'C3'][0][0].row, worksheet['A1':'C3'][0][0].column) # (1,1)
要遍历一个范围,您可以遍历元组值
rng = worksheet['A1':'C3']
for r in rng:
for x in r:
print(x.coordinate, x.row, x.column)
输出
A1 1 1
B1 1 2
C1 1 3
A2 2 1
B2 2 2
C2 2 3
A3 3 1
B3 3 2
C3 3 3
您还可以使用 iter_rows
循环访问单元格。以下代码产生与上面相同的输出
for c in worksheet.iter_rows(min_row=1, max_col=3, max_row=3): # A1 - C3
for x in c:
print(x.coordinate, x.row, x.column)