Python-如何使用for循环将数据写入单元格,然后移动到nex

2024-05-23 21:42:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我觉得一个相对简单的解决方案有问题,但在这一点上,它逃避了我的研究。我试图使用for循环将一个元组中的项写到四个连续的行中,但是我似乎无法理解。我怀疑可以用openpyxl包中的iter_rows模块来完成,但是我还不能在循环中正确地应用它。下面这段代码将生成一个.xlsx文件,其中最后一项来自分配给单元格“A2”的元组:

from openpyxl import Workbook

nfc_east = ('DAL', 'WAS', 'PHI', 'NYG')

wb = Workbook()

ws = wb.active

row_cell = 2

for i in nfc_east:

    column_cell = 'A'
    ws.cell(row = row_cell, column = column_cell).value = str(i)
    row_cell = row_cell + 1

wb.save("row_creation_loop.xlsx")

欢迎提出任何建议和(建设性的)批评。谢谢您!


Tags: forwscellcolumn解决方案xlsxnfcrows
2条回答

如果您只想从元组中写入单元格,则可以使用类似-ws['A1'] = <something>的语法直接执行此操作,这会将值写入单元格A1

示例-

from openpyxl import Workbook
nfc_east = ('DAL', 'WAS', 'PHI', 'NYG')
wb = Workbook()
ws = wb.active
for row, i in enumerate(nfc_east):
    column_cell = 'A'
    ws[column_cell+str(row+2)] = str(i)

wb.save("row_creation_loop.xlsx")

当使用语法-ws.cell(row = row_cell, column = column_cell).value时,列单元格必须是整数,而不是字符串,因此对于A列,必须将column参数的值指定为1(对于B则为2)等

你的代码不是为我运行的(Invalid column index A)。你在用哪个版本的pyxl?AFAIK pyxl使用整数索引。下面的代码将生成您想要的输出(我想)。

from openpyxl import Workbook

nfc_east = ('DAL', 'WAS', 'PHI', 'NYG')
wb = Workbook()
ws = wb.active

start_row = 2
start_column = 1

for team in nfc_east:
    ws.cell(row=start_row, column=start_column).value = team
    start_row += 1

wb.save("row_creation_loop.xlsx")

#  Prints...
#
#   |  A  |
# 1 |     |
# 2 | DAL |
# 3 | WAS |
# 4 | PHI |
# 5 | NYG |

相关问题 更多 >