PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
生徒
「PythonでExcelファイルを読み取ったり書き込んだりってできますか?表計算ソフトみたいに使いたいです。」
先生
「もちろんできますよ。Pythonにはopenpyxlやpandasという便利なモジュールがあり、Excel(.xlsx)ファイルを操作できます。」
生徒
「そうなんですね!でもパソコンもPythonも初心者で、不安です…」
先生
「心配いりません。これからわかりやすく丁寧に、Excelファイルの読み書き方法を基礎から解説していきますね。」
1. Excelファイル(.xlsx)とは?
Excelファイルとは、Microsoft Excelで使われる表計算ソフトのファイル形式のことです。表(テーブル)を作って、データを並べたり計算したりするのに使われます。
Pythonでは、拡張子が.xlsxのファイルを操作できます。.xlsは古い形式なので、基本的には.xlsxを使いましょう。
2. PythonでExcelを操作するための準備
PythonでExcelファイルを読み書きするには、まずopenpyxlやpandasというモジュールをインストールします。以下のように入力します。
pip install openpyxl pandas
openpyxlはExcelファイルを細かく操作するのに使われ、pandasはデータを表形式で扱える便利なツールです。
3. openpyxlでExcelファイルを読み込む方法
まずはopenpyxlを使って、既存のExcelファイルを開いて内容を表示してみましょう。
import openpyxl
workbook = openpyxl.load_workbook('sample.xlsx')
sheet = workbook.active
print(sheet['A1'].value)
load_workbook()でファイルを開き、sheet['A1'].valueでA1セルの値を取得します。簡単にセルの中身が読めるのがポイントです。
4. openpyxlでExcelに書き込む方法
次に、Excelファイルに新しいデータを書き込んで保存する方法です。
import openpyxl
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet['A1'] = '名前'
sheet['B1'] = '年齢'
sheet['A2'] = '田中'
sheet['B2'] = 28
workbook.save('output.xlsx')
Workbook()で新しいExcelファイルを作成し、セルに直接値を代入してsave()で保存します。保存後はExcelで開いて確認できます。
5. pandasでExcelを読み込む方法
pandasを使うと、Excelの表をまとめて読み込んで、表形式(DataFrame)として扱えます。大量のデータでも効率よく処理できます。
import pandas as pd
df = pd.read_excel('sample.xlsx')
print(df)
read_excel()を使えば、1行ずつ読み込まずに表全体を一気に取得できます。表示も表形式でとても見やすいです。
6. pandasでExcelに書き込む方法
pandasで新しくデータを作って、それをExcelファイルに保存する方法を紹介します。
import pandas as pd
data = {
'名前': ['佐藤', '鈴木'],
'年齢': [34, 29]
}
df = pd.DataFrame(data)
df.to_excel('people.xlsx', index=False)
DataFrameで表を作り、to_excel()でファイルに保存します。index=Falseは行番号をExcelに書き出さないための設定です。
7. Excelのシート名を指定して読み込むには?
1つのExcelファイルに複数のシート(タブ)がある場合、特定のシートを指定して読み込むこともできます。
import pandas as pd
df = pd.read_excel('multi_sheet.xlsx', sheet_name='社員一覧')
print(df)
sheet_name=に読みたいシート名を指定すれば、目的の表だけを取り出すことができます。
8. Excelファイルを編集して上書き保存する方法
すでにあるExcelファイルの中身を変更したい場合は、openpyxlで読み込んでから編集して保存します。
import openpyxl
workbook = openpyxl.load_workbook('output.xlsx')
sheet = workbook.active
sheet['B2'] = 30
workbook.save('output.xlsx')
このように、指定したセルの値を変更して、同じファイル名で保存すれば上書きが完了します。
9. Excelファイル操作時の注意点
初心者がExcelファイルをPythonで操作するときに気をつけたいポイントを紹介します。
- Excelを開いたままだと保存できないことがあるので、操作前に閉じておく
- 文字コードの関係でエラーが出るときは、
encoding='utf-8'を明示する - 拡張子が
.xlsxでないとエラーになることがある(.xlsは非対応) - ファイル名に日本語や記号を含めると保存時に失敗することがある
基本さえ押さえれば、PythonでのExcel操作はとても簡単で便利です。