[Python] OpenPyXLでExcel(xlsx)を操作する [超初心者向け]

PythonでExcel(xlsx)ファイルを操作するためのOpenPyXLについて紹介します。

XlsxWriterpython-excelなどPythonでExcelファイルを操作する方法は多くありますが、

OpenPyXLがナレッジが多く使いやすいのでオススメです。今回はOpenPyXLのインストールから基本的な使い

方について紹介します。

細かい使用方法をマニュアルを参照ください。

目次

OpenPyXLのインストール

OpnePyXLをインストールするには「pip」を使用します。

pip install openpyxl 

またPycharmでOpenPyXLをインストールする方法は以下にまとめてありますので参考にします。

あわせて読みたい
PyCharmにライブラリをインストール・アップデートする手順 PyCharmで追加のライブラリを「Python Package Index」などリポジトリからインストールとアップデートする方法を紹介します。 Pythonでは便利なライブライが多数揃って...

Excelファイルの新規作成・読み込み・書き込み

Excelファイルを作成・読み込み・書き込みは、ワークブックのPythonクラスオブジェクトを使用します。

Excelのワークブックの新規作成

ワークブックを新規作成するには「Workbook()」を使用します。

import openpyxl

wb = openpyxl.Workbook()

以下が新規作成の実行例です。

>>> import openpyxl
>>>
>>> wb = openpyxl.Workbook()
>>> print(wb)
<openpyxl.workbook.workbook.Workbook object at 0x000002B40AC49748>
>>>

Excelのワークブックの読み込み

ワークブックを読み込むには「load_workbook()」を使用します。

import openpyxl

wb = openpyxl.load_workbook(filename='[filename]', read_only=True)

以下が読み込みの実行例です。

>>> import openpyxl
>>>
>>> wb = openpyxl.load_workbook('workBook.xlsx')
>>> print(wb)
<openpyxl.workbook.workbook.Workbook object at 0x000002B40AC3C2E8>
>>>

Excelのワークブックの書き込み

ワークブックを書き込むには「save()」を使用します。

import openpyxl

wb = openpyxl.save(filename='[filename]')

以下が書き込みの実行例です。

>>> import os
>>> import openpyxl
>>>
>>> wb = openpyxl.Workbook()
>>> wb.save(filename='sample.xlsx')
>>> os.path.exists('sample.xlsx')
True
>>>

Excelファイルのワークシートを追加・削除・選択

Excelファイルのワークシートの追加・削除・選択する方法を紹介します。

Excelのワークシートの追加

Excelのワークシートを追加するには「create_sheet()」を使用します。

import openpyxl

wb = openpyxl.Workbook()

wb.create_sheet('sheetname')

以下がワークシート追加の実行例です。

>>> import openpyxl
>>>
>>> wb = openpyxl.Workbook()
>>> wb.create_sheet('workSheet')
<Worksheet "workSheet">
>>> print(wb.sheetnames)
['Sheet', 'workSheet']
>>>

Excelのワークシートの削除

Excelのワークシートを削除するには「remove()」を使用します。

多くのブログなどでは、「remove_sheet()」が紹介されてますが「DeprecationWarning」が発生します。

そのため、以下の方法を使用することをオススメします。

import openpyxl

wb = openpyxl.Workbook()

wb.remove(wb['sheetname'])

以下が読み込みの実行例です。

>>> import openpyxl
>>>
>>> wb = openpyxl.Workbook()
>>>
>>> # ワークシート作成
... wb.create_sheet('workSheet')
<Worksheet "workSheet">
>>> print(wb.sheetnames)
['Sheet', 'workSheet']
>>>
>>> # ワークシート削除
... wb.remove(wb['workSheet'])
>>> print(wb.sheetnames)
['Sheet']
>>>

Excelのワークシートの選択

Excelファイルのワークシート操作対象を選択するには、ワークシートのクラスオブジェクトを使用します。

セルを操作する際に必要になりますので、必ずマスターしましょう。

「active」を紹介しているブログなどがありますが、

以下のようにコーディングすることでわかりやすくなります。

import openpyxl

wb = openpyxl.Workbook()

ws = wb['sheetname']

以下がワークシート追加の実行例です。

>>> import openpyxl
>>>
>>> wb = openpyxl.Workbook()
>>> # ワークシート作成
... wb.create_sheet('sampleSheet')
<Worksheet "sampleSheet">
>>>
>>> # ワークシートを選択
... ws = wb['sampleSheet']
>>> print(ws)
<Worksheet "sampleSheet">
>>>

Excelファイルのセルの指定・読み込み・書き込み

Excelファイルのセルを操作する方法は以下に大きく分けて2種類あります。

「セル番号を指定する方法」と「行・列の番号で指定する方法」になります。

セル番号を指定するには「ws[’セル番号’]」を使用します。

import openpyxl

wb = openpyxl.Workbook()
ws = wb['sampleSheet']
ws['セル番号'].value

行・列の番号で指定するには「cell()」を使用します。

import openpyxl

wb = openpyxl.Workbook()

ws = wb['sampleSheet']

ws.cell(column=<列番号>, row=<行番号>, value=<セル値>)

ループ処理で「cell()」を使用して、それ以外ではセル番号で指定することで読みやすいコードになります。

セルの値を読み込む

Excelファイルのセルの値を読み込むには「value」を使用します。

import openpyxl

wb = openpyxl.Workbook()
ws = wb['sampleSheet']
ws['セル番号'].value
ws.cell(column=<列番号>, row=<行番号>).value

以下が読み込みの実行例です。

>>> import openpyxl
>>>
>>> wb = openpyxl.load_workbook('workBook.xlsx')
>>> ws = wb['Sheet1']
>>> print(ws['A1'].value)
CellValue A1
>>> print(ws.cell(column=1, row=2).value)
CellValue A2
>>>

セルの値を書き込む

Excelファイルのセルの値を書き込むには「value」に値を代入します。

import openpyxl

wb = openpyxl.Workbook()

ws = wb['sampleSheet']

ws['セル番号'].value

ws.cell(column=<列番号>, row=<行番号>, value=<セル値>)

以下が書き込みの実行例です。

>>> import openpyxl
>>>
>>> wb = openpyxl.load_workbook('workBook.xlsx')
>>> ws = wb['Sheet1']
>>>
>>> print(ws['A1'].value)
CellValue A1
>>> print(ws.cell(column=1, row=2).value)
CellValue A2
>>>
>>> # セルへの書き込み
... ws['A1'].value = 'Written CellValue A2'
>>> ws.cell(column=1, row=2 , value='Written CellValue A2')
<Cell 'Sheet1'.A2>
>>>
>>> print(ws['A1'].value)
Written CellValue A2
>>> print(ws.cell(column=1, row=2).value)
Written CellValue A2
>>>
  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次