WORKS | 作品

生產日報自動彙整:機台匯出的 CSV,變成一份看得懂的 Excel

把每台機台匯出的 CSV 合併成一份 Excel 日報:各機台良率與稼動率、早夜班比較、停機原因排行、異常清單。支援 Big5 編碼與髒資料,良率未達標自動標紅。

STACK / 技術
Python · openpyxl
LINK / 連結
原始碼(GitHub) →
機台 CSV、Python 彙整、Excel 日報、異常標紅的流程圖

驗證狀態:以範例資料與 9 項自動測試驗證;範例資料是模擬的三台機台、一天兩班,不是客戶資料。

很多工廠的日報是這樣做出來的:每天早上,有人把每台機台匯出的檔案一個一個打開,複製貼上到同一份 Excel,再算良率、找停機原因。一台機台幾分鐘,十台就是一個早上。更麻煩的是,資料有錯也很難發現。

這個示範把這件事變成一個指令。

輸出的日報長這樣

分頁 內容
總覽 每台機台的投入、良品、不良、良率、停機、稼動率;良率未達標自動標紅
班別 每台機台的早班與夜班分開看,夜班跨午夜也算對
停機原因 依累計停機分鐘排序,一眼看出今天最該處理的問題
異常清單 良率過低、停機過長、停機沒填原因、良品+不良對不上投入數
原始資料 合併後的全部紀錄,有疑問可以回查

處理真實資料會遇到的問題

我在產線設備做了很多年,機台匯出的資料很少是乾淨的。這個程式先把這些情況處理好:

  • 編碼不一:有的機台匯出 UTF-8,有的是 Big5,不用先手動轉檔。
  • 欄位名稱不統一:「投入數」「投入」「Input」都認得,順序也不限。
  • 髒資料不會讓程式中斷:空白列略過,看不懂的列記進異常清單,其他資料照常彙整。
  • 夜班跨日:20:00 到隔天 08:00 的夜班,算在開始那天,不會被拆成兩天。
  • 數字對帳:良品加不良不等於投入的資料列會被抓出來,這種錯誤最容易藏在報表裡。

可以直接導入

上面的原始碼是精簡的示範版。實際導入用的是產品化版本:

  • 一個設定檔管資料夾、班別時間、良率與停機標準、你們機台的欄位名稱
  • Windows 雙擊執行,可做成免安裝 Python 的 exe
  • 不填日期就產生昨天的日報,搭配 Windows 工作排程器每天早上自動跑
  • 附使用手冊、範例資料、執行紀錄檔

可以延伸成

  • 每天固定時間自動跑,報表寄到信箱或推到 LINE 群組
  • 直接讀機台的資料庫或共享資料夾,連匯出都不用
  • 週報、月報與良率趨勢圖

如果你的日報也是每天手動貼出來的,把一兩個機台的匯出檔給我看,通常就能估出要多久、要多少錢。服務說明在工廠 Excel 報表自動化。

← 回到作品

你的情況也類似?

加 LINE 最快。說說你現在怎麼做、想變成什麼樣子,
我回你可行的做法和需要釐清的問題。

加 LINE 聊一聊 →

或寫信:ted@tedshen.link