gpt4 book ai didi

python - 列表索引超出范围 Openpyxl

转载 作者:太空宇宙 更新时间:2023-11-03 21:02:21 24 4
gpt4 key购买 nike

我想自动编写 Excel 工作表,通过使用 openpyxl,我可以将公式写入最多“N”列的单元格,但当我尝试对“O”列执行相同操作时,我收到索引错误。

我尝试使用 Insert_cols 添加列,但它显示“名称'insert_cols'未定义”,我不确定它能解决我的问题。

for row, cellObj in enumerate(list(sheet.columns)[14]):
b=row+1
c=row+14
print (cellObj,b,c)
n = '=AVERAGE(J%d:J%d)' % (b, c)
# print n # check that n gets assigned correct string value
cellObj.value = n
IndexError                                Traceback (most recent call last)
<ipython-input-32-ab8bd56d638c> in <module>
----> 1 for row, cellObj in enumerate(list(sheet.columns)[14]):
2 b=row+1
3 c=row+14
4 print (cellObj,b,c)
5 n = '=AVERAGE(J%d:J%d)' % (b, c)

IndexError: list index out of range

我希望它会将其写入“O”列,但它显示索引错误。

---更新

wbsheet.active()
sheet['Z7'] = '= SUM(A1:A5)'

我像上面的代码一样将一个随机值传递给单元格 Z7 ,之后列表(sheet.columns)会考虑列直到 Z 你能解释一下这里发生了什么以及是否有一种方法来声明列的数量我需要的列而不是使用 hack。

最佳答案

问题在于您定义列表的方式:

list(sheet.columns)[14]

这会将sheet.columns转换为列表,但[14]只会为您提供索引14处的列表元素。

以下内容对您的实现有用吗?

list(sheet.columns)

这样你的 for 循环就会得到一个实际的列列表,它可以更好地使用它。

关于python - 列表索引超出范围 Openpyxl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55644639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com