www.whyit.work
では、セルの位置を"A1"のように指定して、値を書き込みましたが、cellメソッドでrow, columnの位置を指定してセルの値を参照、更新することができます。
というような、"test.exel"ファイルがあるとして、"A1"から"A5"までを参照し、"A6"から"A10"まで新たな値を追加するプログラムをかいてみます。
import openpyxl book = openpyxl.load_workbook('test.xlsx') sheet = book['work'] i = 1 while i < 6: print(sheet.cell(row=i, column=1).value) i += 1 while i < 11: sheet.cell(row=i, column=1).value = i print(sheet.cell(row=i, column=1).value) i += 1 book.save('test.xlsx')
これを実行すると以下のように出力され、
# python test.py
1
2
3
4
5
6
7
8
9
10
エクセルファイルは以下のように更新されます。
一行目の各列を更新するのであれば、columnの値を更新します。
また、rowもcolumnも1始まりであることに注意してください。
上記プログラムで、iの初期値に0を設定すると、以下のようなエラーが発生します。
ValueError: Row or column values must be at least 1
フォントやフォーマットについてはまた機会があれば記載します。
今日はここまで。