用 Codex 匯總工時 CSV:先分出異常行,附教學源碼

3 分鐘閱讀
按月份、項目匯總工時,最容易出問題的往往不是相加,而是把「待確認」、錯誤日期或缺項目的行也混了進去。

按月份、項目匯總工時,最容易出問題的往往不是相加,而是把「待確認」、錯誤日期或缺項目的行也混了進去。

這個小工具先分出有效行與異常行,再做匯總。異常保留行號和原因,方便回到原表處理。

先約定哪些行可以相加

示例 CSV 只有日期、項目、小時三個欄位,規則是:

  • 日期使用 YYYY-MM-DD,並且是真實存在的日期。
  • 項目名稱不能為空。
  • 每行小時大於0、不超過24,最多兩位小數。

這些是教學規則,適配自己的記錄時需要重新確認。例如每天的總工時是否有限制、同一天是否允許重複,本例沒有處理。

給 Codex 的任務:

讀取 sample.csv,按上述規則分開有效行和異常行。
有效行按月份、項目匯總,輸出 summary.csv。
異常行輸出 exceptions.csv,保留 CSV 行號與原因。
另外生成瀏覽器可查看的報告。
原檔案唯讀,不自動補值,不覆蓋既有輸出。
用模擬資料核對結果,並驗證異常輸入。

執行與核對

在解壓後的項目目錄執行,輸出目錄需尚不存在:

python -X utf8 summarize_hours.py sample.csv --output output

原樣例有8條模擬記錄,結果為4條有效、4條異常。有效記錄匯總如下:

月份項目小時
2026-09項目A3.50
2026-10項目B3.50
合計7.00

「待確認」、不存在的日期、超範圍小時與缺項目的行沒有進入總數。檢查報告時同時看匯總和異常兩部分,避免只看到一個好看的總數。

驗收範圍

2026年10月15日的 Windows / Python 3.13.5 執行記錄中,6項測試通過,覆蓋小數、日期、項目、範圍、缺欄與舊輸出保護;原 CSV 校驗不變,報告用本地 Edge 查看。執行腳本不呼叫 API。

下載工時匯總教學項目

樣例全部是模擬資料。格式正確不證明記錄真實,也不代表已經檢查同一天重複或日總工時。本文於2026年10月27日整理,保留原測試範圍,沒有重新執行。任務描述的官方參考見 OpenAI Prompting。

下載包的說明、模擬資料及程式顯示文字均已改為香港繁體中文。

2026年10月28日另行驗證繁體下載版:Windows / Python 3.13.5,6項測試全部通過;8條模擬記錄仍為4條有效、4條異常,合計7.00小時,輸入檔案內容不變。這次核對包括程式及報告 HTML 內容,沒有重新操作瀏覽器。


香港繁體版整理日期:2026年10月28日。原文引用的產品說明核對截至2026年10月27日;原實驗日期與範圍保留於文中。

查看 AI Coding 系列全部文章

相關文章