Python – 如何使用for循环将数据写入单元格,然后移动到下一行

我有什么感觉像一个相对简单的解决scheme的问题,但在这一点上,它逃脱了我的研究。 我试图从一个元组写入项目到四个连续的行使用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") 

所有的build议和(build设性的)批评都欢迎。 谢谢!

如果你所要做的只是从元组中写出单元格,你可以直接用 – 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 ,column_cell必须是整数,而不是string,所以对于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 |