【テンプレ付き】Pythonで日報・報告書を自動作成するスクリプト10選

業務の中で毎日のように書かされる「日報」「報告書」。
正直、書く内容はルーティンが多く、時間がもったいないと感じたことはありませんか?

そんなあなたにおすすめなのが、Pythonによる自動化です。
この記事では、すぐに使える日報・報告書自動作成スクリプト10選をテンプレ付きで紹介します。


なぜPythonで日報・報告書を自動化するのか?

  • 毎日同じ形式だから:テンプレート化しやすい
  • 作業内容はファイルやログにある:自動抽出が可能
  • 再利用が効く:一度作れば毎日時短に
  • ExcelやPDFも扱える:報告書形式を柔軟に出力できる

自動化スクリプト①:テンプレートに入力してWord出力

from docx import Document

def create_daily_report(date, tasks, notes):
    doc = Document()
    doc.add_heading(f"{date} の日報", 0)
    doc.add_heading("本日の作業内容", level=1)
    for task in tasks:
        doc.add_paragraph(f"- {task}")
    doc.add_heading("所感・連絡事項", level=1)
    doc.add_paragraph(notes)
    doc.save(f"{date}_daily_report.docx")

自動化スクリプト②:Excelテンプレートに入力

import openpyxl

def fill_excel_report(template_path, save_path, date, task_summary):
    wb = openpyxl.load_workbook(template_path)
    ws = wb.active
    ws['B2'] = date
    ws['B4'] = task_summary
    wb.save(save_path)

自動化スクリプト③:Markdown日報を自動生成

def generate_markdown_report(date, tasks, note):
    with open(f"{date}_report.md", "w", encoding="utf-8") as f:
        f.write(f"# {date} の業務報告\n\n## 作業内容\n")
        for task in tasks:
            f.write(f"- {task}\n")
        f.write(f"\n## 所感\n{note}\n")

自動化スクリプト④:前日の作業ログから自動生成

def extract_from_log(log_file):
    with open(log_file, "r", encoding="utf-8") as f:
        return [line.strip() for line in f if "作業完了" in line]

自動化スクリプト⑤:Googleスプレッドシートに直接記入(GAS連携)

import gspread
from oauth2client.service_account import ServiceAccountCredentials

def update_google_sheet(date, task_summary):
    scope = ['https://spreadsheets.google.com/feeds',
             'https://www.googleapis.com/auth/drive']
    creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
    client = gspread.authorize(creds)

    sheet = client.open("日報").sheet1
    sheet.append_row([date, task_summary])

自動化スクリプト⑥:定時に自動生成・送信(スケジューラ連携)

import schedule
import time

def job():
    print("日報を作成中...")
    # 日報作成ロジック(他の関数を呼び出し)

schedule.every().day.at("18:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(60)

自動化スクリプト⑦:ChatGPT APIで所感やまとめを生成

import openai

openai.api_key = "YOUR_API_KEY"

def generate_summary(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

自動化スクリプト⑧:PDF出力(日報を配布用に)

from fpdf import FPDF

def create_pdf_report(date, tasks):
    pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Arial", size=12)
    pdf.cell(200, 10, txt=f"{date} の日報", ln=True, align="C")
    for task in tasks:
        pdf.cell(200, 10, txt=f"- {task}", ln=True)
    pdf.output(f"{date}_report.pdf")

自動化スクリプト⑨:ターミナル操作で日報生成(CLIツール化)

import argparse

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("--date", required=True)
    parser.add_argument("--task", nargs='+')
    args = parser.parse_args()
    generate_markdown_report(args.date, args.task, "特になし")

main()

自動化スクリプト⑩:複数メンバー分の日報を一括生成

def batch_generate(reports):
    for r in reports:
        create_daily_report(r["date"], r["tasks"], r["notes"])

まとめ:自分の業務に合った「型」で仕組み化しよう

Pythonを使えば、日報・報告書の自動化は思っているより簡単です。
最初にテンプレートを決めておけば、あとはスケジューラで自動実行も可能。


関連記事リンク

転職でキャリアを加速させたいあなたへ

「今の職場に限界を感じている」「もっと評価される場所で働きたい」そんなあなたに向けて、転職成功の実践ノウハウと退職時の不安を解消するサポート情報をまとめました。

転職・退職で迷っている方へ。不安を解消し、自信を持って次のキャリアへ踏み出しましょう。

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