如何使用openpyxl在python中写入新单元格
我编写的代码打开一个excel文件,遍历每一行,并将值传递给另一个函数如何使用openpyxl在python中写入新单元格,python,excel,openpyxl,Python,Excel,Openpyxl,我编写的代码打开一个excel文件,遍历每一行,并将值传递给另一个函数 import openpyxl wb = load_workbook(filename='C:\Users\xxxxx') for ws in wb.worksheets: for row in ws.rows: print row x1=ucr(row[0].value) row[1].value=x1 # i am having error at this po
import openpyxl
wb = load_workbook(filename='C:\Users\xxxxx')
for ws in wb.worksheets:
for row in ws.rows:
print row
x1=ucr(row[0].value)
row[1].value=x1 # i am having error at this point
当我试图运行该文件时,出现以下错误
TypeError: IndexError: tuple index out of range
我可以将返回值x1
写入行[1]
列吗。是否可以写入excel(即使用行[1]
)而不是访问单个单元格,如ws。['c1']=x1
,请尝试以下操作:
import openpyxl
wb = load_workbook(filename='xxxx.xlsx')
ws = wb.worksheets[0]
ws['A1'] = 1
ws.cell(row=2, column=2).value = 2
ws.cell(coordinate="C3").value = 3 # 'coordinate=' is optional here
这将分别将单元格A1、B2和C3设置为1、2和3(在工作表中设置单元格值的三种不同方式)
第二种方法(指定行和列)最适合您的情况:
import openpyxl
wb = load_workbook(filename='xxxxx.xlsx')
for ws in wb.worksheets:
for index, row in enumerate(ws.rows, start=1):
print row
x1 = ucr(row[0].value)
ws.cell(row=index, column=2).value = x1
有150行,很难访问每个单元格并写入数据。像ws['a1']=x1,ws['a2']=''。我希望有一个通用的解决方案。感谢您的帮助,所以请使用我提供的第二个表单:ws.cell(row=X,column=Y)。value=VI已更新我的答案,以包括您在特定情况下如何使用该方法。请注意,除非保存该文件,否则更改不会反映在Excel文件中<代码>wb.save(文件名)您的代码没有反映您所说的要执行的操作。