如何使用openpyxl写入python中的新单元格

时间:2015-07-13 23:15:50

标签: 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 point

尝试运行该文件时出现以下错误。

TypeError: IndexError: tuple index out of range

我可以将返回值x1写入row[1]列。是否可以写入excel(即使用row[1])而不是访问单个单元格,如ws.['c1']=x1

1 个答案:

答案 0 :(得分:26)

试试这个:

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