業務の中で毎日のように書かされる「日報」「報告書」。
正直、書く内容はルーティンが多く、時間がもったいないと感じたことはありませんか?
そんなあなたにおすすめなのが、Pythonによる自動化です。
この記事では、すぐに使える日報・報告書自動作成スクリプト10選をテンプレ付きで紹介します。
- なぜPythonで日報・報告書を自動化するのか?
- 自動化スクリプト①:テンプレートに入力してWord出力
- 自動化スクリプト②:Excelテンプレートに入力
- 自動化スクリプト③:Markdown日報を自動生成
- 自動化スクリプト④:前日の作業ログから自動生成
- 自動化スクリプト⑤:Googleスプレッドシートに直接記入(GAS連携)
- 自動化スクリプト⑥:定時に自動生成・送信(スケジューラ連携)
- 自動化スクリプト⑦:ChatGPT APIで所感やまとめを生成
- 自動化スクリプト⑧:PDF出力(日報を配布用に)
- 自動化スクリプト⑨:ターミナル操作で日報生成(CLIツール化)
- 自動化スクリプト⑩:複数メンバー分の日報を一括生成
- まとめ:自分の業務に合った「型」で仕組み化しよう
- 関連記事リンク
なぜ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を使えば、日報・報告書の自動化は思っているより簡単です。
最初にテンプレートを決めておけば、あとはスケジューラで自動実行も可能。
関連記事リンク
転職でキャリアを加速させたいあなたへ
「今の職場に限界を感じている」「もっと評価される場所で働きたい」そんなあなたに向けて、転職成功の実践ノウハウと退職時の不安を解消するサポート情報をまとめました。
- ▶ キャリアを加速させるハイクラス転職の戦略
- ▶ 40代以上でも安心。経験を活かせる「エージェント」活用法
- ▶ ITエンジニア特化型「TechClipsエージェント」のリアルな評価
- ▶ 円満退職を実現するための法律サポートもチェック
転職・退職で迷っている方へ。不安を解消し、自信を持って次のキャリアへ踏み出しましょう。