openpyxl for循环 - 增加值

时间:2017-07-17 12:03:06

标签: python excel openpyxl

我正在尝试使用for循环在Excel工作表中设置值,但我有点卡住了。它应该将A1 - A4设置为列表中的项目。当我尝试在for循环中递增A1时,我的代码重新发出错误:

import openpyxl

wb = openpyxl.load_workbook('morning.xlsx')
am_sheet = wb.active

list1 = ['dog', 'cat', 'bear', 'mouse']

i = 1

for x in list1:
    am_sheet['%s'].value = x % ("A" + str(i))
    i += 1

错误开始了:

Traceback (most recent call last):
  File "C:/Python27/Pyjects/am/twinder.py", line 11, in <module>
   am_sheet['%s'].value = x % ("A" + str(i))
TypeError: not all arguments converted during string formatting

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

am_sheet['%s'].value = x % ("A" + str(i))

插值语法应紧跟在字符串文字之后:

am_sheet['%s' % ("A" + str(i))].value = x

但你可以使用更干净的.format

am_sheet['A{}'.format(i)].value = x

答案 1 :(得分:0)

不要在任何代码中使用ws['A%s' % (i)]。请改用工作表的.cell()方法:ws.cell(row=i, column=1)