「日々のExcel作業をもっと効率化できたら…」と思ったことはありませんか?
Pythonを使えば、手間のかかる反復作業を簡単に自動化できます。
この記事では、初心者でも理解できるExcel操作の基礎から応用までを、具体例を交えて解説します。Pythonの力で業務効率を大幅に向上させましょう!
目次
準備: 必要なライブラリのインストール
PythonでExcelを操作するには、以下のライブラリが必要です:
以下のコマンドでインストールしてください:
pip install openpyxl pandas
2. 基本操作: Excelファイルを作成して編集
Excelファイルを作成する
まずは、PythonでExcelファイルを作成してみましょう。
from openpyxl import Workbook
# 新しいExcelファイルを作成
wb = Workbook()
ws = wb.active
# データを入力
ws['A1'] = "名前"
ws['B1'] = "年齢"
ws.append(["Alice", 30])
ws.append(["Bob", 25])
# ファイルを保存
wb.save("example.xlsx")
print("Excelファイルが作成されました!")
作成されるExcelの内容:
名前 年齢
Alice 30
Bob 25
3. Excelファイルを読み込む
Excelファイルを読み取る方法
既存のExcelファイルをPythonで読み取る方法を紹介します。
import pandas as pd
# Excelファイルを読み込む
df = pd.read_excel("example.xlsx")
# 内容を表示
print(df)
出力例:
名前 年齢
0 Alice 30
1 Bob 25
4. 応用操作: データを加工して保存
Pythonを使ってExcelデータを加工し、新しいファイルに保存します。
# 年齢を1歳増やす
df['年齢'] = df['年齢'] + 1
# 加工後のデータを保存
df.to_excel("updated_example.xlsx", index=False)
print("データを加工し、新しいExcelファイルに保存しました!")
保存後の内容(updated_example.xlsx):
名前 年齢
Alice 31
Bob 26
5. 実践例: 複数のExcelファイルを統合
複数のExcelファイルを1つにまとめる例を紹介します
files = ["example1.xlsx", "example2.xlsx"]
all_data = pd.DataFrame()
for file in files:
data = pd.read_excel(file)
all_data = pd.concat([all_data, data])
# 統合データを保存
all_data.to_excel("merged.xlsx", index=False)
print("複数のExcelファイルを統合しました!")
6. 条件付き書式を適用する
条件付き書式を使って、特定の条件に合うセルを強調表示する方法です。
pythonコードをコピーするfrom openpyxl.styles import PatternFill
from openpyxl import load_workbook
# Excelファイルを読み込む
wb = load_workbook("example.xlsx")
ws = wb.active
# 条件付き書式を適用
red_fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
for row in ws.iter_rows(min_row=2, max_row=ws.max_row, min_col=2, max_col=2):
for cell in row:
if cell.value > 28: # 条件: 年齢が28以上
cell.fill = red_fill
# 保存
wb.save("formatted_example.xlsx")
print("条件付き書式を設定しました!")
Excelで強調される条件: 年齢が28以上のセルが赤くハイライトされます。
7. 自動メール送信: Excelデータを使う
自動メール送信の例
Excelのデータを基にメールを送信します。
import smtplib
from email.mime.text import MIMEText
import pandas as pd
# Excelファイルを読み込む
df = pd.read_excel("contacts.xlsx")
# SMTP設定
smtp_server = "smtp.example.com"
port = 587
sender_email = "your_email@example.com"
password = "your_password"
# メール送信
with smtplib.SMTP(smtp_server, port) as server:
server.starttls()
server.login(sender_email, password)
for index, row in df.iterrows():
recipient = row["Email"]
message = MIMEText(f"こんにちは {row['Name']}さん、\nこれは自動送信されたメールです。")
message["Subject"] = "自動通知"
message["From"] = sender_email
message["To"] = recipient
server.sendmail(sender_email, recipient, message.as_string())
print(f"{row['Name']} ({recipient}) にメールを送信しました。")
8. スクリプトの定期実行
Pythonスクリプトを毎日指定した時間に実行する方法を紹介します。
import schedule
import time
def automate_excel():
# 自動化スクリプトをここに記述
print("Excel自動化スクリプトを実行中...")
# 毎日9時にスクリプトを実行
schedule.every().day.at("09:00").do(automate_excel)
print("スケジューラーが実行中です。Ctrl+Cで終了します。")
while True:
schedule.run_pending()
time.sleep(1)
まとめ
Pythonを使ったExcel自動化は、日々の業務の生産性を大きく向上させます。本記事で紹介したスクリプトを試し、少しずつカスタマイズして自分の業務に役立ててください。
さらに詳しく知りたい方は以下の公式リソースをご覧ください:
まずは簡単なスクリプトから始めて、業務効率化の世界へ一歩踏み出しましょう!
コメント