データ入力作業をPythonで自動化する入門ガイド【コピペOK】

業務自動化📖 12分で読める
Python自動化データ入力Excel業務効率化

「Excelに毎日同じデータを手入力している」「別システムからコピペして転記するだけの作業に2時間かかっている」——この手の作業をPythonで自動化した話をよく相談で聞きます。

自分もエンジニア副業の初期に、クライアントのこういう作業を引き受けることが多かった。Python書けると「そんな作業、数十行のスクリプトで終わります」と言えるので、かなり重宝される。この記事では、データ入力・転記系の自動化でよく使うコードをそのまま使えるサンプル付きで紹介します。

準備:必要なライブラリのインストール

まずPythonとライブラリをインストールします。Pythonが入っていない場合は公式サイトから3.11以降をダウンロード。

pip install openpyxl pandas requests beautifulsoup4
  • openpyxl — Excelファイルの読み書き
  • pandas — CSV・テーブルデータの操作
  • requests + beautifulsoup4 — Webスクレイピング

パターン1: ExcelファイルをCSVに一括変換

複数のExcelファイルをCSVに変換する作業、手動でやると地味に時間がかかります。

import os
import pandas as pd

# 変換したいExcelファイルがあるフォルダを指定
input_folder = "excel_files"
output_folder = "csv_output"

os.makedirs(output_folder, exist_ok=True)

for filename in os.listdir(input_folder):
    if filename.endswith(".xlsx") or filename.endswith(".xls"):
        filepath = os.path.join(input_folder, filename)
        df = pd.read_excel(filepath)
        
        csv_name = filename.rsplit(".", 1)[0] + ".csv"
        csv_path = os.path.join(output_folder, csv_name)
        df.to_csv(csv_path, index=False, encoding="utf-8-sig")
        
        print(f"変換完了: {filename} → {csv_name}")

print("すべてのファイルを変換しました")

input_folder のパスを変えれば使いまわせます。encoding="utf-8-sig" を指定しているのは、Excelで開いたときに文字化けしないようにするため。

パターン2: 複数CSVを1つにまとめる

月別の売上データや顧客データが別々のCSVに分かれていて、毎月まとめるのが面倒——このケースです。

import os
import pandas as pd

csv_folder = "monthly_data"
output_file = "all_data_combined.csv"

dfs = []
for filename in os.listdir(csv_folder):
    if filename.endswith(".csv"):
        filepath = os.path.join(csv_folder, filename)
        df = pd.read_csv(filepath, encoding="utf-8-sig")
        df["source_file"] = filename  # どのファイルから来たかを記録
        dfs.append(df)

if dfs:
    combined = pd.concat(dfs, ignore_index=True)
    combined.to_csv(output_file, index=False, encoding="utf-8-sig")
    print(f"{len(dfs)}件のCSVを結合しました → {output_file}")
else:
    print("CSVファイルが見つかりません")

source_file 列を追加しているので、後から「このデータはどのファイルから来た?」を追跡できます。

パターン3: ExcelのデータをWeb API経由で別システムに送る

社内システムやkintone・Notionに手入力していたデータを、ExcelからAPIで自動登録するパターンです。

import pandas as pd
import requests
import json

# Excelからデータ読み込み
df = pd.read_excel("input_data.xlsx")

# APIのエンドポイントとトークン(実際の値に変更)
API_URL = "https://your-system.example.com/api/records"
API_TOKEN = "your-api-token-here"

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_TOKEN}"
}

success_count = 0
for _, row in df.iterrows():
    payload = {
        "name": row["氏名"],
        "email": row["メールアドレス"],
        "amount": int(row["金額"]),
    }
    
    response = requests.post(API_URL, headers=headers, data=json.dumps(payload))
    
    if response.status_code == 200:
        success_count += 1
    else:
        print(f"エラー: {row['氏名']} — {response.status_code}")

print(f"登録完了: {success_count}/{len(df)}件")

列名(氏名メールアドレス金額)はExcelの実際のヘッダー名に合わせて変更してください。

パターン4: Webサイトのデータを自動収集

定期的に競合サイトの価格や、特定ページの情報を手動でコピペしているなら、スクレイピングで自動化できます。

import requests
from bs4 import BeautifulSoup
import csv

url = "https://example.com/products"  # 取得したいページのURL
response = requests.get(url, headers={"User-Agent": "Mozilla/5.0"})
soup = BeautifulSoup(response.text, "html.parser")

# 例: 商品名と価格を取得(セレクタはサイトに合わせて変更)
products = soup.find_all("div", class_="product-item")

with open("products.csv", "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.writer(f)
    writer.writerow(["商品名", "価格"])
    
    for product in products:
        name = product.find("h3").text.strip()
        price = product.find("span", class_="price").text.strip()
        writer.writerow([name, price])

print(f"{len(products)}件のデータを取得しました")

スクレイピングは利用規約を確認してから実行してください。robots.txt で禁止されているサイトへの使用は避けること。

スクリプトを定期実行するには

作ったスクリプトをWindowsのタスクスケジューラやMacのlaunchdで毎日自動実行すれば、完全な無人運転になります。Windowsの場合:

  1. タスクスケジューラを起動
  2. 「タスクの作成」→ トリガーで実行タイミングを設定
  3. 操作で python C:\path\to\your_script.py を指定

毎朝9時に自動実行して結果をCSVに書き出す、という運用が多いです。


ここで紹介したのは基本パターンですが、実際の業務では「エラー時にSlackに通知を飛ばす」「処理済みファイルを別フォルダに移動する」など、もう少し手を加えることが多い。「自分の業務に合わせたスクリプトを作りたい」という場合は、Coconalaの業務自動化サービス経由でご相談いただけます。

GASを使った自動化(Googleスプレッドシート中心)はこちらの記事、月10時間削減した請求書自動化の事例はこちらも参考に。