Python:openpyxl的列索引错误

Python:openpyxl的列索引错误,python,for-loop,xlsx,openpyxl,file-writing,Python,For Loop,Xlsx,Openpyxl,File Writing,我有两个列表要写入新的xlsx文件: list1=[1,2,3,4] list2=[A,B,C,D] 我想将list1转储到A列,将list2转储到B列: COLUMN A COLUMN B 1 A 2 B 3 C 4 D 这是我对它的看法,但它会引发错误:ValueError:Invalid column index 0 from openpyxl import load_workbook fr

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

list1=[1,2,3,4]
list2=[A,B,C,D]
我想将
list1
转储到A列,将
list2
转储到B列:

COLUMN A     COLUMN B
1            A
2            B
3            C
4            D
这是我对它的看法,但它会引发错误:
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)

错误点位于最后一行。有什么问题吗?

从未使用过openpyxl,但通过查看,似乎列号必须介于1和18278之间:

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

PS:
用于“A”中的c
用于“B”中的c
?也许你的意思是:

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

是的,行和列都是1索引的,因此
“A1”
对应于
(1,1)
我在根据您的最后三行修改代码时遇到此错误:
ValueError:Invalid column index A
@FC84:然后使用1和2,而不是A和b非常感谢您的回答,但令人恼火的是,在一个excel文件中无法写入超过A-ZZZ列的内容……非常感谢,我被困了一天,不知道会有这样的限制!文档中包含1-1索引。为什么我会被否决?我希望我们在没有任意否决任何人的情况下被迫作出解释。我在否决投票后加了一条评论。你显然没有花太多时间阅读这些文件。但是,说真的,谁会那么在乎被否决呢?你可能是对的。但作为一种同行评议制度,负面评论可以和正面评论一样具有建设性,所以如果有人说“看,这就是你的问题的症结所在……”,我将不胜感激。我可以很好地浏览存管处,任意地否决所有问题——这是一种什么样的贡献,而不做任何解释?我会向主持人建议这项修正案——在否决表决时,必须作出解释。
for r in range(1,5):
    ws.cell(row=r, column=1).value = list1[r]
    ws.cell(row=r, column=2).value = list2[r]