openpyxlライブラリの使用方法

import openpyxl
print(openpyxl.__version__)

エクセルファイル作成

from openpyxl import Workbook

# 新しいWorkbookオブジェクトを作成します。
wb = Workbook()

# 現在有効なSheetを取得します。
ws = wb.active

# Sheetの名前を変えます。
ws.title = 'MySheet'

# A1 セルに「A1」を入力します。
ws['A1'] = 'A1'
print(ws['A1'].value)#'A1'が出力されます。

# エクセルファイルを保存します。
wb.save('excel.xlsx')

image.png

値入力

from openpyxl import Workbook

wb = Workbook() 
ws = wb.active

# 1行2列(B1) に、「B1」 と入力します。
ws.cell(row=1, column=2, value='B1')
print(ws.cell(row=1, column=2).value) # 「B1」が出力されます。
wb.save('excel.xlsx')

image.png

エクセルファイルの読み取り

from openpyxl import load_workbook

wb = load_workbook('excel.xlsx')
ws = wb.active

# 完全なデータを読み取ります。
# ws.max_rowとws.max_columnに1を足さなければなりません。
for x in range(1, ws.max_row + 1):
    for y in range(1, ws.max_column + 1):
        # end='' '' を入れると、値の間に 1 マスが入ります。
        print(ws.cell(row=x, column=y).value, end=' ')
    # 列を変えます。
    print()

IMG_0469.JPG

from openpyxl import load_workbook

wb = load_workbook('excel.xlsx')
ws = wb.active

# 列全体が読めます。
# B列を読みます。
# チュープロ データを読み取ります。
col_B = ws['B']

for cell in col_B:
    print(cell.value)

# 区分線を入れます。
print('-'*10)

# 行全体を読むことができます。
# 1行目を読みます。
row_1 = ws[1]

for cell in row_1:
    print(cell.value)

IMG_0473.JPG

from openpyxl import load_workbook

wb = load_workbook('excel.xlsx')
ws = wb.active

# 1行目から3行目まで読みます。
row_range = ws[1:3]

for rows in row_range:
    for cell in rows:
        print(cell.value, end=' ')
    print()

# B列からD列まで読みます。
col_range = ws['B:D']

for cols in col_range:
    for cell in cols:
        print(cell.value)

IMG_0468.JPG

from openpyxl import load_workbook

wb = load_workbook('excel.xlsx')
ws = wb.active

# 行全体を読みます。
for row in ws.rows:
    # 1 行ずつ値を確認します。
    for item in row:
        print(item.value, end=' ')
    print()

IMG_0471.JPG

from openpyxl import load_workbook

wb = load_workbook('excel.xlsx')
ws = wb.active

for row in ws.iter_rows(min_row=1, max_row=ws.max_row, min_col=1, max_col=ws.max_column):
    for item in row:
        print(item.value, end=' ')
    print()

IMG_0473.JPG