Python:openpyxl的列索引错误

FaC*_*fee -1 python for-loop xlsx file-writing openpyxl

我有两个要写入新xlsx文件的列表:

list1=[1,2,3,4]
list2=[A,B,C,D]
Run Code Online (Sandbox Code Playgroud)

我想list1转储到A列和list2B列:

COLUMN A     COLUMN B
1            A
2            B
3            C
4            D
Run Code Online (Sandbox Code Playgroud)

这是我的看法,但是会引发错误:ValueError: Invalid column index 0

from openpyxl import load_workbook
from openpyxl import Workbook
from openpyxl.compat import range
from openpyxl.cell import get_column_letter
import os

wb = Workbook() 
newdir=r'C:\Users\MyName\Desktop'
os.chdir(newdir)
dest_filename = 'Trial.xlsx'
ws=wb.active
for r in range(1,5):
    for c in 'A':
       ws.cell(row=r,column=0).value=list1[r]
    for c in 'B':
       ws.cell(row=r,column=1).value=list2[r]
wb.save(filename = dest_filename)
Run Code Online (Sandbox Code Playgroud)

错误指向最后一行。怎么了

And*_*ini 5

从未使用过openpyxl,但是通过查看source,看来列号必须在1到18278之间:

if not 1 <= col_idx <= 18278:
    raise ValueError("Invalid column index {0}".format(col_idx))
Run Code Online (Sandbox Code Playgroud)

因此,不要使用column=0column=1,而使用:

for r in range(1,5):
    for c in 'A':
       ws.cell(row=r, column=1).value = list1[r]
    for c in 'B':
       ws.cell(row=r, column=2).value = list2[r]
Run Code Online (Sandbox Code Playgroud)

PS: for c in 'A'for c in 'B'?也许您的意思是:

for r in range(1,5):
    ws.cell(row=r, column=1).value = list1[r]
    ws.cell(row=r, column=2).value = list2[r]
Run Code Online (Sandbox Code Playgroud)