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操作はとても簡単で便利です。
まとめ
PythonでExcelファイル(.xlsx)を扱う知識は、業務効率化やデータ分析の基本として非常に役に立ちます。openpyxlを使えば細かいセル単位の編集や新規ファイルの作成ができ、pandasを使えば大量のデータを一気に読み込んで加工できるため、Excelを手作業で触るよりも圧倒的に効率よく作業が進みます。Excelの表をPythonで扱えるようになることで、毎日の作業や事務処理、データの整理が自動化でき、作業時間の短縮にもつながります。また、複数のシートを扱う場合でも、シート名を指定して読み込めるため、複雑なExcelファイルでも柔軟にデータを取得できます。 PythonでExcelを扱うための基礎は、「ファイルを読み込む」「データを取り出す」「値を書き込む」「編集して保存する」の4つです。openpyxlではセルの値を直接指定できるほか、Workbookオブジェクトを使って空のファイルを作成できます。pandasではDataFrameという表形式のデータを中心に操作でき、Excelの表をそのままプログラム内で扱うのに最適です。特にpandasは、読み込み・加工・書き出しが非常にスピーディで、表計算の自動処理を行いたいときには欠かせないライブラリです。 ExcelファイルをPythonで扱うときに気をつけたい点としては、ファイルを開いたままにしておかないこと、正しい拡張子で保存すること、文字コードを適切に扱うこと、ファイル名の扱いに注意することなどがあります。これらを押さえておけば、初心者でも難しいと感じることなく、Excelファイルの操作をスムーズに行えるようになります。 Excelのセルを指定する方法、シートを切り替える方法、DataFrameからExcelへの出力方法などは、実際に手を動かして試すことで理解がさらに深まります。特にopenpyxlとpandasの両方を使い分けられるようになると、小規模から大規模までさまざまなExcel業務に対応でき、データ処理の幅が大きく広がります。自動化の第一歩として、今回の内容を何度も試しながら手に馴染ませていくことが大切です。
サンプルプログラム(まとめ用のExcel操作一式)
Excelファイルを新規作成し、書き込み・読み込み・編集までをまとめて行う例です。
import openpyxl
import pandas as pd
# 1. 新しいExcelファイルを作成して書き込む
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet['A1'] = '商品名'
sheet['B1'] = '価格'
sheet['A2'] = 'りんご'
sheet['B2'] = 120
workbook.save('sample_output.xlsx')
# 2. pandasで読み込み
df = pd.read_excel('sample_output.xlsx')
print("読み込んだデータ:")
print(df)
# 3. openpyxlで値を変更して上書き
workbook = openpyxl.load_workbook('sample_output.xlsx')
sheet = workbook.active
sheet['B2'] = 150 # 価格を変更
workbook.save('sample_output.xlsx')
# 4. 再度pandasで確認
df = pd.read_excel('sample_output.xlsx')
print("変更後のデータ:")
print(df)
このサンプルでは、新規作成から編集、pandasとの連携までを一度に体験できます。Excel業務の自動化やデータ整理など、多くの場面で応用できる基本的な流れです。
生徒
「PythonでExcelが扱えるなんて思っていませんでした。セルに直接書き込めたり、表をまとめて読み込めたりして、とても便利ですね!」
先生
「そうなんです。openpyxlを使えば細かい編集ができて、pandasは大量のデータを扱うのにぴったりです。使い分けることでExcel作業が一気に効率化できますよ。」
生徒
「シート名を指定して読み込む方法も役に立ちそうです。仕事で複数シートのExcelをよく扱うので、Pythonで自動化できたらすごく楽になりますね。」
先生
「その通り。データ分析でも事務作業でもExcelはよく使われますから、Pythonで操作できるようになると作業の幅がとても広がります。今回の内容を何度か手を動かして練習してみてください。」
生徒
「はい!openpyxlとpandasの違いもよく分かったので、用途に応じて使い分けられるように練習していきます!」
先生
「とても良い心構えですね。Excel操作はPython学習の中でも実践的で役に立つ分野ですから、どんどん挑戦していきましょう。」