PythonでExcelファイルを操作する方法

Python Python
Python

このページでは、Pythonを使用してExcelファイルを操作する方法について詳しく解説します。

PythonはExcelファイルのリード(読み込み)、ライト(書き込み)、そしてファイルのダウンロードなど、多くの操作を簡単に行うことができます。

このガイドを通じて、基本的な操作方法やサンプルコードを紹介します。

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

Excelファイルの読み込みは、Pythonのpandasopenpyxlなどのライブラリを使用することで簡単に実現できます。

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

pandasはPythonのデータ操作ライブラリで、Excelファイルを扱うのに最もよく使用されます。

以下のコードでは、Excelファイルを読み込んでDataFrameに変換しています。

import pandas as pd

# Excelファイルの読み込み
df = pd.read_excel('example.xlsx')

# DataFrameの表示
print(df)

このコードでは、pd.read_excel()を使ってExcelファイルを読み込んでいます。

読み込んだデータは、pandasのDataFrameとして操作できます。

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

openpyxlはExcelファイルの読み書きが可能なライブラリです。

以下のコードは、openpyxlを使用してExcelファイルを読み込む方法です。

from openpyxl import load_workbook

# Excelファイルの読み込み
wb = load_workbook('example.xlsx')
sheet = wb.active

# シートのデータを読み取る
for row in sheet.iter_rows(values_only=True):
    print(row)

このコードでは、load_workbook()を使ってExcelファイルを読み込み、シート内のデータを1行ずつ表示しています。

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

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

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

pandasを使ってExcelファイルにデータを書き込むことも非常に簡単です。

以下のコードは、新しいデータをExcelファイルに書き込む例です。

import pandas as pd

# データフレームの作成
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}

df = pd.DataFrame(data)

# Excelファイルに書き込む
df.to_excel('output.xlsx', index=False)

このコードでは、to_excel()を使用してDataFrameをExcelファイルに書き込んでいます。

index=Falseは、インデックスを含めないようにするオプションです。

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

openpyxlを使って、既存のExcelファイルにデータを書き込む例を以下に示します。

from openpyxl import Workbook

# 新しいワークブックの作成
wb = Workbook()
ws = wb.active

# データの書き込み
ws['A1'] = 'Name'
ws['B1'] = 'Age'
ws.append(['Alice', 25])
ws.append(['Bob', 30])

# Excelファイルに保存
wb.save('output.xlsx')

このコードでは、新しいExcelファイルを作成し、指定したデータをセルに書き込みます。

PythonでExcelファイルをダウンロードする方法

ExcelファイルをWebアプリケーションで作成し、ユーザーにダウンロードさせる方法も紹介します。Flaskフレームワークを使用した例です。

Flaskを使ったExcelファイルのダウンロード

以下は、Flaskを使ってExcelファイルを生成し、ユーザーにダウンロードさせるコードです。

from flask import Flask, send_file
from io import BytesIO
import pandas as pd

app = Flask(__name__)

@app.route('/download_excel')
def download_excel():
    # データフレームの作成
    data = {'Name': ['Alice', 'Bob', 'Charlie'],
            'Age': [25, 30, 35]}
    df = pd.DataFrame(data)

    # Excelファイルをバッファに書き込み
    output = BytesIO()
    with pd.ExcelWriter(output, engine='xlsxwriter') as writer:
        df.to_excel(writer, index=False)
    
    output.seek(0)

    # ファイルをダウンロードさせる
    return send_file(output, attachment_filename="output.xlsx", as_attachment=True)

if __name__ == '__main__':
    app.run(debug=True)

このコードでは、Flaskを使ってExcelファイルを動的に生成し、ユーザーにダウンロードさせる仕組みを提供しています。

まとめ

Pythonを使用することで、Excelファイルの読み込み、書き込み、そしてダウンロードといった操作を簡単に実現できます。

pandasopenpyxlといったライブラリを活用することで、効率的にデータを操作し、WebアプリケーションでもExcelファイルの生成・配布が可能です。

これらの方法を活用して、業務の効率化を図ってみてください。

タイトルとURLをコピーしました