PYTHON MEBY

PythonでExcelファイルを読み書き (openpyxl, pandas)

この記事では、Pythonでopenpyxlとpandasライブラリを使ってExcelファイルを読み書きする方法を説明します。基本的な操作から、データの整形、高度な機能まで、様々な例を通して解説します。

目次

openpyxlを使ったExcelファイルの読み書き

openpyxlは、Excelファイルの読み書きに特化したライブラリです。セル単位での操作に適しています。

from openpyxl import Workbook, load_workbook

# 新しいExcelファイルを作成
wb = Workbook()
ws = wb.active
ws['A1'] = 'Hello'
ws['B1'] = 'world!'
wb.save('hello.xlsx')

# 既存のExcelファイルを読み込む
wb = load_workbook('hello.xlsx')
ws = wb.active
print(ws['A1'].value) # 出力: Hello
print(ws['B1'].value) # 出力: world!

# セルの値を変更して保存
ws['A1'] = 'Python'
wb.save('hello.xlsx')

openpyxlでは、シートへのアクセスやセルの操作を容易に行えます。ワークブックオブジェクト、シートオブジェクト、セルオブジェクトを操作することで、Excelファイルの内容を自由に編集できます。

  • openpyxlは、xlsxファイルに対応しています。xlsファイルには対応していません。
  • 大規模なExcelファイルの処理には、pandasライブラリの方が効率が良いです。

pandasを使ったExcelファイルの読み書き

pandasは、データ分析に特化したライブラリです。DataFrameというデータ構造を使って、Excelファイル全体を効率的に読み書きできます。

import pandas as pd

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

# DataFrameをExcelファイルに書き込む
df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
df.to_excel('pandas_example.xlsx', index=False)

pandasは、データの読み込みと書き込みを高速に行うことができます。また、データの整形や分析も容易に行えます。

  • pandasは、xlsxファイルとxlsファイルの両方に対応しています。
  • データの読み込み時に、エンコーディングを指定する必要がある場合があります。

openpyxlとpandasの比較

openpyxlとpandasは、それぞれExcelファイルの操作に適したライブラリです。openpyxlはセル単位の操作に適しており、pandasはデータ分析に適しています。用途に応じて使い分けることが重要です。

エラー処理と例外処理

Excelファイルの読み書きでは、ファイルが存在しない、アクセス権限がないなどのエラーが発生する可能性があります。try-exceptブロックを使ってエラー処理を行うことが重要です。

import pandas as pd
try:
    df = pd.read_excel('nonexistent.xlsx')
except FileNotFoundError:
    print('ファイルが見つかりません')
except Exception as e:
    print(f'エラーが発生しました: {e}')

関連記事