読み込み中...

PythonでExcelファイルを操作!初心者向けの7つのステップ

Pythonとxlsxを用いたExcelファイル操作のステップバイステップガイド Python
この記事は約17分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Pythonを使ってExcelファイルを操作するスキルは、データ分析やオフィス業務の自動化に大変役立ちます。

この記事では、Pythonとxlsxを使ってExcelファイルを操作する方法を、初心者の視点から丁寧に解説します。

●Pythonとは

Pythonは、汎用性の高いプログラミング言語で、その可読性と書きやすさから初心者にも扱いやすい言語として知られています。

また、PythonにはExcel操作を支援するライブラリが存在しますので、これを活用することでExcelファイルの操作が可能となります。

●Excel(xlsx)ファイルとは

Excelファイルは、マイクロソフト社が提供する表計算ソフト「Excel」で使用するファイル形式で、拡張子は’.xlsx’です。

このファイル形式を操作することで、表形式のデータを自由に読み書きしたり、編集することができます。

●PythonでExcelを操作するための準備

PythonでExcelファイルを操作するためには、Pythonと特定のライブラリのインストールが必要となります。

○Pythonのインストール方法

Pythonは公式ウェブサイトからダウンロードしてインストールできます。

公式ウェブサイトにアクセスし、ダウンロードページから自身のOSに対応したPythonのインストーラーをダウンロードし、指示に従ってインストールしてください。

○ライブラリopenpyxlのインストール方法

PythonでExcelファイルを操作するためには、「openpyxl」というライブラリが必要です。

Pythonがインストールされた状態でコマンドプロンプトまたはターミナルを開き、pip install openpyxlと入力し実行してください。

これでPythonとopenpyxlの準備が完了しました。

●PythonでExcelファイルを操作する基本

PythonでExcelファイルを操作する基本的な流れは次のようになります。

ここでは、それぞれの手順を一つずつ詳細に説明していきます。

○Excelファイルを開く

PythonでExcelファイルを開くためには、openpyxlのload_workbook関数を使います。

この関数にExcelファイルのパスを引数として渡すことで、Excelファイルを開きます。

from openpyxl import load_workbook
wb = load_workbook('sample.xlsx')

上記のコードでは、同じディレクトリにある’sample.xlsx’というExcelファイルを開いています。

wbという変数がExcelファイル全体を表しています。

○Excelシートを選択する

Excelファイルを開いた後は、操作したいシートを選択します。

これには、ワークブックオブジェクトの’.active’プロパティか、’get_sheet_by_name’関数を使います。

sheet = wb.active  # 最初に開いたシートを選択
sheet = wb.get_sheet_by_name('Sheet1')  # 'Sheet1'という名前のシートを選択

上記のコードでは、まず最初に開いたシートを選択し、次に’Sheet1’という名前のシートを選択しています。

sheetという変数がシート全体を表しています。

○セルにデータを書き込む

選択したシートの特定のセルにデータを書き込むには、セルオブジェクトの’.value’プロパティを使います。

sheet['A1'].value = 'Hello, Excel!'  # 'A1'のセルにデータを書き込む

上記のコードでは、’A1’のセルに’Hello, Excel!’というデータを書き込んでいます。

○Excelファイルを保存する

Excelファイルに対する操作が終わったら、ワークブックオブジェクトの’.save’関数を使ってファイルを保存します。

wb.save('sample.xlsx')  # ファイルを保存する

上記のコードでは、’sample.xlsx’という名前でExcelファイルを保存しています。

これらの手順を組み合わせて、一つのサンプルコードを見てみましょう。

○サンプルコード1:基本的なExcel操作

このコードでは、Pythonとopenpyxlを使ってExcelファイルを開き、シートを選択し、特定のセルにデータを書き込み、最後にファイルを保存するという一連の操作を行っています。

from openpyxl import load_workbook

# Excelファイルを開く
wb = load_workbook('sample.xlsx')

# シートを選択する
sheet = wb.active

# セルにデータを書き込む
sheet['A1'].value = 'Hello, Excel!'

# ファイルを保存する
wb.save('sample.xlsx')

このコードを実行すると、’sample.xlsx’ファイルの最初のシートのA1セルに’Hello, Excel!’という文字列が書き込まれます。

結果をExcelで確認すると、A1セルに’Hello, Excel!’と表示されているはずです。

●PythonでExcelファイルを読み込む方法

Pythonのライブラリであるopenpyxlを使用すれば、Excelファイルからデータを読み込むことが可能です。

Pythonを用いてExcelのファイルを読み込むには、基本的に次の手順を踏みます。

  1. Excelファイルを開く
  2. シートを選択する
  3. セルのデータを読み込む

では、それぞれの手順を具体的に見ていきましょう。

○セルのデータを読み込む

特定のセルからデータを読み込むには、セルオブジェクトの’.value’プロパティを参照します。

具体的には次のようなコードになります。

data = sheet['A1'].value  # 'A1'のセルからデータを読み込む
print(data)

このコードでは、’A1’というセルからデータを読み込み、それを表示しています。

もしA1セルに’Hello, Excel!’という文字列が書き込まれていた場合、’Hello, Excel!’という文字列が出力されるでしょう。

○範囲指定でデータを読み込む

一つずつのセルを指定するのではなく、範囲を指定して複数のセルからデータを読み込むことも可能です。

その場合、次のようなコードになります。

for row in sheet['A1:B2']:
    for cell in row:
        print(cell.value)

上記のコードは、A1からB2までの範囲にある各セルからデータを読み込み、それを表示します。

これらをまとめると、Excelファイルからデータを読み込むサンプルコードを作成できます。

○サンプルコード2:Excelファイルの読み込み

下記のコードでは、Pythonとopenpyxlを使ってExcelファイルを開き、シートを選択し、特定のセルからデータを読み込むという一連の操作を行っています。

from openpyxl import load_workbook

# Excelファイルを開く
wb = load_workbook('sample.xlsx')

# シートを選択する
sheet = wb.active

# 'A1'のセルからデータを読み込む
data = sheet['A1'].value
print(data)

このコードを実行すると、’sample.xlsx’ファイルの最初のシートのA1セルからデータを読み込み、それを表示します。

もしA1セルに’Hello, Excel!’という文字列が書き込まれていた場合、’Hello, Excel!’という文字列が出力されるでしょう。

さらに、次のコードは、範囲を指定して複数のセルからデータを読み込む例です。

from openpyxl import load_workbook

# Excelファイルを開く
wb = load_workbook('sample.xlsx')

# シートを選択する
sheet = wb.active

# A1からB2までの範囲からデータを読み込む
for row in sheet['A1:B2']:
    for cell in row:
        print(cell.value)

このコードを実行すると、’sample.xlsx’ファイルの最初のシートのA1からB2までの範囲にある各セルからデータを読み込み、それぞれを表示します。

もしA1セルに’Hello,’、B1セルに’Excel!’, A2セルに’Welcome’, B2セルに’to Python!’という文字列が書き込まれていた場合、それぞれのセルのデータが次のように出力されます。

Hello,
Excel!
Welcome
to Python!

このように、Pythonとopenpyxlを用いてExcelファイルからデータを読み込むことができます。

しかし、ただ読み込むだけでなく、Excelファイルに新たにデータを書き込むことも可能です。

●PythonでExcelファイルを書き込む方法

それでは、次にPythonでExcelファイルにデータを書き込む方法を見ていきましょう。

Pythonを使えば、テキストだけでなく数値や日付など、様々なデータを簡単にExcelファイルに書き込むことができます。

ここではPythonのopenpyxlライブラリを使ってExcelファイルにデータを書き込む基本的な手順をご紹介します。

まずは、Pythonで新規Excelファイルを作成する方法から始めましょう。

○新規Excelファイルを作成する

新規のExcelファイルを作成するためには、まずopenpyxlのWorkbook関数を使用してワークブックを作成します。

ワークブックとは、Excelの一つのファイル(.xlsx)を指します。

そして、ワークブック内に作成される各シートにアクセスするために、ワークブックからアクティブなシートを取得します。

ここで、シートにアクセスして、データを書き込む準備が整いました。

次に、具体的なコードを見てみましょう。

from openpyxl import Workbook

# Workbookを新規作成
wb = Workbook()

# アクティブなシートを取得
ws = wb.active

# ファイルに保存
wb.save("sample.xlsx")

このコードでは、まずopenpyxlのWorkbookをインポートし、それを使って新しいワークブックを作成しています。

その後、wb.activeを使ってアクティブなシートを取得し、最後にwb.save()メソッドで作成したワークブックを保存しています。

“sample.xlsx”という名前のExcelファイルが作成され、その中には新しいシートが作られます。

○複数セルにデータを書き込む

次に、Pythonを使ってExcelファイルの複数のセルにデータを書き込む方法を見ていきましょう。

# データを書き込む
ws["A1"] = "Hello"
ws["B1"] = "World"

# ファイルに保存
wb.save("sample.xlsx")

このコードでは、ws[“A1”]やws[“B1”]のように指定して、各セルにデータを書き込んでいます。”A1″や”B1″はExcelのセルの位置を示す文字列です。

そして、書き込んだデータを保存するために、再度wb.save()を呼び出しています。

このコードを実行すると、”sample.xlsx”というExcelファイルのA1セルには”Hello”、B1セルには”World”というテキストが書き込まれます。

○サンプルコード3:Excelファイルの書き込み

それでは、ここまでの内容をまとめて、PythonでExcelファイルを新規作成し、複数のセルにデータを書き込むサンプルコードをご紹介します。

from openpyxl import Workbook

# Workbookを新規作成
wb = Workbook()

# アクティブなシートを取得
ws = wb.active

# データを書き込む
ws["A1"] = "Python"
ws["B1"] = "Excel"
ws["A2"] = "Programming"
ws["B2"] = "Beginner"

# ファイルに保存
wb.save("sample.xlsx")

このコードを実行すると、新規のExcelファイル”sample.xlsx”が作成され、その中のA1セルには”Python”、B1セルには”Excel”、A2セルには”Programming”、B2セルには”Beginner”というテキストが書き込まれます。

●PythonでExcelファイルを編集する方法

Excelファイルの作成やデータの書き込みができたら、次はExcelファイルを編集する方法について学びましょう。

特にPythonを使ったExcel操作では、セルのデータの更新、行や列の追加、そして行や列の削除が頻繁に行われます。

そのためこれらの基本的な操作をマスターすることが、Pythonを使ってExcelを効率的に操作するためのキーとなります。

○セルのデータを更新する

まずはセルのデータを更新する方法から始めましょう。

ここでは、「openpyxl」の「load_workbook」関数を使って既存のExcelファイルを読み込み、その中の特定のセルのデータを更新する方法を紹介します。

例えば、下記のサンプルコードでは、’A1’のセルの値を’新しい値’に更新しています。

from openpyxl import load_workbook

# 既存のExcelファイルを読み込む
wb = load_workbook('sample.xlsx')
ws = wb.active

# 'A1'のセルの値を更新する
ws['A1'] = '新しい値'

# ファイルを保存する
wb.save('sample.xlsx')

このコードを実行すると、先ほど作成した’sample.xlsx’ファイルの’A1’セルの値が’新しい値’に更新されます。

○行・列を追加する

次に、行や列を追加する方法を見ていきましょう。

ここでも「openpyxl」の「insert_rows」や「insert_cols」関数を使うことで、指定した位置に新しい行や列を追加することができます。

下記のサンプルコードでは、2行目に新しい行を、そして2列目に新しい列を追加しています。

from openpyxl import load_workbook

# 既存のExcelファイルを読み込む
wb = load_workbook('sample.xlsx')
ws = wb.active

# 2行目に新しい行を追加する
ws.insert_rows(2)

# 2列目に新しい列を追加する
ws.insert_cols(2)

# ファイルを保存する
wb.save('sample.xlsx')

このコードを実行すると、先ほど作成した’sample.xlsx’ファイルに新しい行と列が追加されます。

○行・列を削除する

最後に、行や列を削除する方法を見ていきましょう。

「openpyxl」の「delete_rows」や「delete_cols」関数を使うことで、指定した位置の行や列を削除することができます。

下記のサンプルコードでは、2行目の行と2列目の列を削除しています。

from openpyxl import load_workbook

# 既存のExcelファイルを読み込む
wb = load_workbook('sample.xlsx')
ws = wb.active

# 2行目の行を削除する
ws.delete_rows(2)

# 2列目の列を削除する
ws.delete_cols(2)

# ファイルを保存する
wb.save('sample.xlsx')

このコードを実行すると、先ほど追加した行と列が’sample.xlsx’ファイルから削除されます。

○サンプルコード4:Excelファイルの編集

以上の一連の操作を組み合わせることで、Pythonを使ってExcelファイルを自由に編集することができます。

下記のサンプルコードでは、セルのデータを更新し、新しい行と列を追加した後、その行と列を削除するという一連の操作を行っています。

from openpyxl import load_workbook

# 既存のExcelファイルを読み込む
wb = load_workbook('sample.xlsx')
ws = wb.active

# 'A1'のセルの値を更新する
ws['A1'] = '新しい値'

# 2行目に新しい行を追加する
ws.insert_rows(2)

# 2列目に新しい列を追加する
ws.insert_cols(2)

# ファイルを保存する
wb.save('sample.xlsx')

# 既存のExcelファイルを再度読み込む
wb = load_workbook('sample.xlsx')
ws = wb.active

# 2行目の行を削除する
ws.delete_rows(2)

# 2列目の列を削除する
ws.delete_cols(2)

# ファイルを再度保存する
wb.save('sample.xlsx')

このコードを実行すると、’A1’セルの値が’新しい値’に更新され、新しい行と列が追加された後にそれらが削除され、最終的に元の状態に戻るという一連の操作が’sample.xlsx’ファイルに対して行われます。

これでPythonを使ってExcelファイルを編集する基本的な方法を学ぶことができました。

特に、「openpyxl」ライブラリはその多機能性から、PythonでExcel操作を行う際の主要なツールとなっています。

これらの基本操作をマスターすれば、Excelファイルの編集もPythonで手軽に行うことが可能になります。

●PythonとExcel操作の応用例

Pythonを使ってExcelのデータを操作する方法を学んだあと、その応用例について考えてみましょう。

ここでは、具体的な応用例として、Pythonを使用してExcelデータの分析とグラフ作成を行う手順をご紹介します。

○サンプルコード5:データ分析とグラフ作成

Pythonにはデータ分析ライブラリの「pandas」やデータ可視化ライブラリの「matplotlib」があります。

これらのライブラリを組み合わせて使用することで、Excelデータの分析とグラフ作成が可能になります。

このコードではpandasを使ってExcelファイルからデータを読み込み、matplotlibを使ってグラフを作成するコードを紹介しています。

この例では、特定のExcelファイル(’sample.xlsx’)を読み込んで、そのデータをヒストグラムとして可視化しています。

import pandas as pd
import matplotlib.pyplot as plt

# Excelファイルを読み込む
df = pd.read_excel('sample.xlsx')

# データをヒストグラムとして描画する
df.hist()

# 描画結果を表示する
plt.show()

このコードを実行すると、Excelファイル(’sample.xlsx’)のデータがヒストグラムとして表示されます。

それぞれの列のデータ分布が確認でき、データの特性を理解するのに役立ちます。

ただし、注意が必要なのは、このコードはExcelファイルの全ての数値データ列をヒストグラムとして描画します。

特定の列だけを描画したい場合は、その列を指定する必要があります。

その方法は次のようになります。

# 'Column1'の列だけをヒストグラムとして描画する
df['Column1'].hist()

# 描画結果を表示する
plt.show()

このコードを実行すると、’Column1’のデータだけがヒストグラムとして表示されます。

●注意点と対処法

PythonでExcelファイルを操作する際には、次のような注意点があります。

①Excelファイルの形式

xlsx形式のExcelファイルはopenpyxlやpandasなどのライブラリで問題なく読み書きできますが、xls形式のファイルは読み込みに失敗することがあります。

xls形式のファイルを使用する場合は、事前にxlsx形式に変換しておくことをおすすめします。

②ファイルパス

Excelファイルを読み込む際には、ファイルの場所(パス)を正確に指定する必要があります。

相対パスを使用する場合は、Pythonスクリプトの場所とExcelファイルの場所の相対的な関係を正確に理解しておくことが大切です。

③エンコーディング

Excelファイルの文字エンコーディングによっては、読み込みに失敗することがあります。

その場合は、Excelでファイルを開き、「名前を付けて保存」のオプションからエンコーディングを変更して保存し直すと良いでしょう。

まとめ

Pythonを使えば、Excelファイルの読み込み、編集、保存が簡単に行えます。

また、データ分析ライブラリのpandasやデータ可視化ライブラリのmatplotlibを使用すれば、Excelデータの分析やグラフ作成も可能になります。

これらの手順を理解し、自身のプロジェクトで活用してみてください。

この記事を通じてPythonでExcel操作が可能になることを願っています。