web-dev-qa-db-ja.com

python 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

戻り値x1row[1]列に書き込むことはできますか。 row[1]のような単一のセルにアクセスする代わりに、Excelに書き込むことは可能ですか(つまり、ws.['c1']=x1を使用)

9
Priyaranjan

これを試して:

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に設定されます(ワークシートでセル値を設定する3つの異なる方法)。

2番目の方法(行と列を指定する)は、状況に最も役立ちます。

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
28
Jake Griffin