📅 Python自動產生整年日期(含規律循環)並輸出Excel|新手也能看懂的完整教學

📖 前言:為什麼需要「日期自動生成」?

在實務工作中(像是報表、排程、金融或製造業系統),常會遇到這種需求:

👉「日期不是每天都有,而是依照某種規律跳動」

例如:

  • 有時隔一天
  • 有時隔兩天
  • 而且這個規律是固定循環的

手動打 Excel 非常容易出錯,也很浪費時間,所以我們用 Python 來解決。


🧠 問題拆解(用最白話方式講)

我們的需求是:

✅ 起始日期

2026/01/26

✅ 日期不是每天增加,而是照這個規律:

+1 天 → +2 天 → +2 天 → +2 天 → 然後重複

👉 這種就叫做「循環規律」


🔁 規律視覺化(幫你更好理解)

次數 增加天數 日期
1 起始 2026/01/26
2 +1 2026/01/27
3 +2 2026/01/29
4 +2 2026/01/31
5 +2 2026/02/02
6 +1 2026/02/03
... 重複 ...

⚙️ 解法概念(工程師思維)

我們會做三件事:

  1. 設定起始日期
  2. 設定規律陣列(pattern)
  3. 用迴圈一直加日期,直到年底

🧪 Python實作

import pandas as pd
from datetime import datetime, timedelta

# 1️⃣ 初始設定
begin_day = datetime(2026, 1, 26)
limit_day = datetime(2026, 12, 31)

# 2️⃣ 規律設定(循環使用)
step_rules = [1, 2, 2, 2]

# 3️⃣ 儲存結果
result_list = []
current = begin_day
rule_index = 0

# 4️⃣ 產生日期
while current <= limit_day:
    result_list.append(current)
    
    # 根據規律往後加天數
    days_to_add = step_rules[rule_index]
    current = current + timedelta(days=days_to_add)
    
    # 循環規律
    rule_index = (rule_index + 1) % len(step_rules)

# 5️⃣ 整理資料
table = pd.DataFrame({
    "日期": [d.strftime("%Y.%m.%d") for d in result_list]
})

# 6️⃣ 匯出 Excel
file_name = "auto_dates_2026.xlsx"
table.to_excel(file_name, index=False)

print("完成產生,共有 {} 筆資料".format(len(table)))

⚠️ 常見錯誤(很多人會踩)

❌ 錯誤示範(變數名稱打錯)

print(file_output_name)

但你實際定義的是:

file_name = "xxx.xlsx"

👉 這會出現錯誤:

NameError: name 'file_output_name' is not defined

✅ 正確觀念

👉 變數名稱要完全一致


📊 輸出結果(Excel會長這樣)

日期
2026.01.26
2026.01.27
2026.01.29
2026.01.31
2026.02.02
2026.02.03
...

🚀 延伸應用(超實用)

這段程式可以用在:

  • 📈 金融交易日生成
  • 🏭 製造排程(非連續日期)
  • 📅 任務排程系統
  • 📊 報表自動填日期
  • 🤖 自動化 Excel 作業

留言

這個網誌中的熱門文章

🔍Vue.js 專案錯誤排查:解決 numericFields is not defined 與合併儲存格邏輯最佳化

🖥️遠端桌面連線完整新手指南:Windows RDP、Chrome Remote Desktop、AnyDesk、TeamViewer 一次搞懂

如何在 Word 插入漂亮的程式碼區塊—使用Editor.md