我正在尝试使用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
有什么想法吗?
答案 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)