PythonでExcelへ読み書きするOpenPyXLの使い方

PythonでExcelへ読み書きするOpenPyXLの使い方

この記事では、OpenPyXLライブラリを使ってPythonからExcelへ読み書きする方法を解説する。 OpenPyXLとは、PythonでExcelファイルの読み書きを可能にしてくれるライブラリだ。OpenPyXLを使えばとても手軽にExcelデータをPythonで扱えるようになる。

なお、本記事のプログラムはPython3で動作するものとする。

OpenPyXLのインストール

本記事のプログラムはPython3で動かすので、pip3を使ってインストールする。

$ pip3 install openpyxl

OpenPyXLのチュートリアル

PythonからExcelファイルの読み込み

それではまずはOpenPyXLを使って、PythonからExcelファイルのデータを読み込んでみる。ライブラリを使う時は import openpyxl で読み込んでおく。

items.xlsx として、こんな感じのExcelファイルを用意した。

Pythonで読み込むExcelデータ
Pythonで読み込むExcelデータ

Excelファイル(.xlsx)を読み込む

wb = openpyxl.load_workbook("items.xlsx")

ワークシートを選択する

ws = wb["alink"]

セルの値を取得する

for row in ws.rows:
    print(row[0].value)
    print(row[1].value)
    print(row[2].value)

数式の結果の値を読み込む

セルに数式が入っている場合、このままだと数式そのものを取得してしまう。数式の計算結果をデータとして取得したい場合は data_only=True を使うことで可能だ。

wb = openpyxl.load_workbook("items.xlsx", data_only=True)

Excelデータの読み込みPythonプログラム例

OpenPyXLを使うと、とても簡単にExcelのデータへアクセスできる。

items = {}
path = "items.xlsx"

wb = openpyxl.load_workbook(path)
ws = wb["alink"]

for row in ws.rows:
    items[row[0].value] = {'Title': row[1].value, 'URL': row[2].value}

PythonからExcelファイルへ書き込み

Excelファイルの新規作成する

wb = openpyxl.Workbook()

Excelファイルの保存する

wb.save("sample.xlsx")

シートを追加する

ws = wb.create_sheet(title="Hello")

セルにデータを書き込む

c1 = ws.cell(row=1, column=1)
c1.value = "Hello world!"

Excelデータの書き込みPythonプログラム例

def write():
    wb = openpyxl.Workbook()

    ws = wb.create_sheet(title='Hello')
    list = ['hoge', 'huga', 'pico']

    for i, data in enumerate(list):
        row = i + 1
        c = ws.cell(row=row, column=1)
        c.value = data

    wb.save("sample.xlsx")

プログラムを実行すると「Hello」シートが追加され、データが書き込まれる。

PythonからExcelにデータを書き込む
PythonからExcelにデータを書き込む

他にも数式を追加したり、色を操作できたりするので追い追い使ってみたいと思う。

最後にGASをやめてよかった点は、使い慣れているエディタとプログラミング言語が使えるようになったことだ。ムダなストレスがなくなり、作業効率アップにつながった。

また、Excelは年間で12,800円だから、月々約1000円ちょっとする。無料で使える期間が1か月間あるので、その間にできることをいろいろ試してみたい。

PythonでExcel、メール、Webを自動化する本
PythonでExcel、メール、Webを自動化する本

Excelシート間のコピペをはじめ、単純なパソコン仕事は小さなプログラムを書くことで自動で行うことができます。 こうしたプログラムを書けるようになることが、自分の仕事を効率化したい社会人にとって大きな武器になることは間違いありません。

KindleAmazon
Excel×Python最速仕事術
Excel×Python最速仕事術

全オフィスパーソン必読!Excelの面倒な操作はパソコンにやらせよう。単純で面倒な作業は、Pythonで自動化しましょう! 一度、自分の作業に合わせて自動化すれば、どんなに大量のデータでもパソコンにすべてまかせてOK。自分は他の仕事を進められます。今から始めるならVBAよりPythonがお薦め。

KindleAmazon

Amazonでお得に購入するなら、Amazonギフト券がオススメ!

\Amazonギフトがお得/

コンビニ・ATM・ネットバンキングで¥5,000以上チャージすると、プライム会員は最大2.5%ポイント、通常会員は最大2%ポイントがもらえます!
Amazonギフト券

\この記事をシェアする/