openpyxl セルに値を入れる

A1セルに1を入れる

import openpyxl

wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = 1
wb.save('test.xlsx')

2行1列(A2)セルに2を入れる

import openpyxl

wb = openpyxl.Workbook()
ws = wb.active
ws.cell(2, 1).value = 2
wb.save('test.xlsx')

セルの範囲指定
範囲指定したものはイテレートすると行を取り出せる。
その後、行をイテレートするとセルを取り出せる。

import openpyxl

wb = openpyxl.Workbook()
ws = wb.active
cell_range = ws['A1':'C2']
print(cell_range)
for row in cell_range:
    print(row)
    for cell in row:
        print(cell)
wb.save('test.xlsx')
# cell_rangeは、行を表すもののタプル、のタプル
((<Cell 'Sheet'.A1>, <Cell 'Sheet'.B1>, <Cell 'Sheet'.C1>), (<Cell 'Sheet'.A2>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.C2>))

# rowは、セルを表すもののタプル
(<Cell 'Sheet'.A1>, <Cell 'Sheet'.B1>, <Cell 'Sheet'.C1>)
<Cell 'Sheet'.A1>
<Cell 'Sheet'.B1>
<Cell 'Sheet'.C1>

(<Cell 'Sheet'.A2>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.C2>)
<Cell 'Sheet'.A2>
<Cell 'Sheet'.B2>
<Cell 'Sheet'.C2>
import openpyxl

wb = openpyxl.Workbook()
ws = wb.active

cell_range = ws['A1':'C2']

print(cell_range[0][0])
print(type(cell_range[0][0]))

print(ws.cell(1, 1))
print(type(ws.cell(1, 1)))

wb.save('test.xlsx')
<Cell 'Sheet'.A1>
<class 'openpyxl.cell.cell.Cell'>
<Cell 'Sheet'.A1>
<class 'openpyxl.cell.cell.Cell'>