透過Selenium取代人力填報資料
前言
原本想像中的Selenium會需要從無到有開啟一個網站後開始進行資料填寫,大多數的網站都會有帳號密碼驗證機制,甚至祭出驗證碼、選擇汽車圖片、移動滑鼠到指定位置...等反爬蟲機制來確認是否為機器人,但若網頁可以被接管繞開這些機制的話,那整個資料填報作業就會很有機會讓電腦代勞,這就是寫程式的趣味來源,當然還是要小心不能點太快,否則網站可能會負荷不過來。
原本想像中的Selenium會需要從無到有開啟一個網站後開始進行資料填寫,大多數的網站都會有帳號密碼驗證機制,甚至祭出驗證碼、選擇汽車圖片、移動滑鼠到指定位置...等反爬蟲機制來確認是否為機器人,但若網頁可以被接管繞開這些機制的話,那整個資料填報作業就會很有機會讓電腦代勞,這就是寫程式的趣味來源,當然還是要小心不能點太快,否則網站可能會負荷不過來。
本篇文章延伸於 施工日誌VBA-V3.5.0 版本操作教學
版面格式有可能因為業主的要求或委員的要求而有些許不同,難以千篇一律的內容應付所有的機關,當初在設計軟體時就有考量到這個部分,故讓報表生成的過程盡可能的彈性,能夠在這個說A改B的環境下好好適應各種狀況,本篇文章主要介紹施工日誌VBA可供輸出的報表格式及微調版型的方法,盡可能以公版作為預設,真的需要再來調整。
以下相關設定按鈕皆需透過工作表"版本說明"點選按鈕【功能主要畫面】後進行。
本篇文章延伸於 施工日誌VBA-V3.5.0 版本操作教學
從前篇第1步驟開始進行的朋友,會發現有一個生效日是空白的,這就是讓使用者要開始填寫日報前的最後確認,確認無誤後便會將生效日加註(第一次加註會與開工日相同),此時才能開始填寫日報,填寫日報後需要點選"儲存日報"資料才會生效,取消填寫時只能透過按鈕"取消填寫",不能點選右上角的X。
填寫日報的過程,可以在版本說明中的"功能主要畫面"裡面對日報進行新增、編輯、刪除,有關日報填寫內容分為以下幾種內容:
本篇文章延伸於 施工日誌VBA-V3.5.0 版本操作教學
取得主程式時,會預設存在範例資料,可先由範例資料大致了解未來使用過程中資料的模樣會如何,更重要的是可以先試行輸出報表,確認是否符合貴司需求。
如欲開始進行使用,建議依照下列順序進行,除基本設定會另外做重置行為需優先設定外,其餘設定不一定要按照順序。
以下相關設定按鈕皆需透過工作表"版本說明"點選按鈕【功能主要畫面】後進行。
自2018年發布監造日報表VBA及2022年發布公共工程施工日誌資料庫VBA後,陸續有收到很多朋友的回饋,經過一次又一次的迭代修改,該遇到的問題差不多也已經解決了,對於檔案中長期累積的程式碼或許因為在下的功力不夠深厚,遺留下大量的技術債,每次的程式碼編輯會耗費不少時間,而且也需要做大量的測試,為了不要債留子孫,特地花了一些時間通盤檢討進行一次完整的重構,也就是本篇文章的主角-施工日誌VBA-V3.5.0.。
項目 | 社群版 | 訂閱版(綁定工程名稱) | 訂閱版(綁定承攬廠商名稱) |
---|---|---|---|
基本功能 | O | O | O |
錯誤修復 | O | O | O |
技術支援 | O | O | |
原始碼 | |||
使用期限 | 至2024年底 | 工程期間 | 訂閱期間 |
相關連結 | 🔗舊版影片 | 🔗新版影片 | 同左 |
施工日誌舊版(社群版)正在使用中的朋友仍可使用到年底,如需轉換至新版請聯繫作者協助。
施工日誌新版(V3.5.0)僅提供訂閱版使用。
如欲購置施工日誌新版(V3.5.0)之訂閱服務,請提供以下資料之一
綁定工程名稱請提供該案契約金額及預定執行期間
綁定承攬廠商名稱請提供公司名稱
⭐ 有需要請LINE(ID:@903qzhwa)聯繫或電子郵件(apple84026113@gmail.com)聯繫
在執行工程時,經常會為了聯絡相關事宜建立LINE群組來進行交談,通常施工照片也會在這個群裡面進行上傳讓大家可以確認內容,上傳照片到LINE群組的時候除了直接上傳外,也可以透過建立相簿將照片永久保存。
在LINE群組的檔案機制,照片或文件會有一定時間的存活期,當過了存活期之後照片就會呈現無法下載的情形,因此將照片做一個額外存放的動作算是滿重要的一個手段,而這件事除了繁瑣也很可能會因為再次請求上傳的過程多存了不少張重複的照片,而這個部分相信大多數人都是透過人眼來進行判別,火眼金睛用久也是會累的。
希望能夠打造一個當群組內判定到照片資料時,能夠自動備份到指定硬碟並汰除重複照片的機器人,減少這些瑣事的發生。
至於照片後續要進行處理就可以利用施工照片VBA進行資料排序、批次改名、報表輸出。
圖表跟圖片都是用來讓網頁元素更為豐富的手段,圖表為數據統計後的成果、圖片則為將抽象的文字轉換成圖片形式進行輸出(比如渠道的長相),抽象的文字往往不比圖片的介紹來的容易接受許多,而這也是資料可視化的目標之一。
在提報工程概要表時,會需要讓上面了解未來要施作的工程內容,因此會拍攝現場的照片及附上工程設計簡圖,而工程設計簡圖的製作過程非常繁瑣,操作過程如下:
因此本次專案預期會讓使用者輸入渠道的尺寸、周邊環境關係來製作一張簡圖,放置於"工程概要表"讓長官了解未來要施作的工程內容,利用python的PIL套件縮短繪製工程設計簡圖的流程。
工程進行階段因為業主、監造不一定都會在現場,無論施工抽查、品質管理、隱蔽部分尺寸紀錄、督導會勘...等等內容,大多數文件都會需要照片作為佐證資料,尤其是假設工程、隱蔽部分更是需要,因此整個工程案進行過程可能會累積大量的照片,後續的請款報表照片貼附、照片檔案查找,會是讓內業人員相當花費時間的一環。
實務上大多會採用LINE群組進行照片上傳,照片說明會出現在畫面中的小白板,再由內業人員自行下載備存,放在本機硬碟中或者是放在公司的NAS裡面,未來需要利用時再去自己所分類的資料夾中比對、下載、貼附,因此對於處理照片的檔案管理、報表輸出我想需要有方法來完成大量、繁複、簡單的工作流程,節省時間來做其他業務內容。
因此,施工照片VBA誕生了,於2023年1月發布給大眾使用運行至今,該修復的內容大概已經完成,以下為目前所釋出的施工照片VBA部分內容,完整內容請參考施工照片VBA完整原始碼。
工程進行期間會有很多不同的任務,每個任務會有自己所需要花費的金額、起始日期、持續天數,藉由這些任務的組合可以統整出工程的預定進度情況,將不同任務繪製在同一個時間軸上可以清楚的了解到現階段有那些任務應該要被完成以及未來還有哪些任務需要完成,對於任務單純的工程很有大的助益。
前陣子在開發施工日誌的時候,如果採用施工計畫書上的每15日累積進度做內差取值會比較容易失真,後來想想,其實這個累積進度的來源也是按照甘特圖的比例所得出的結果?但總歸如何,還是花了一些時間熟悉一下matplotlib的做圖套件,並且搭配streamlit前端介面做一個雲端服務,目標是希望能夠產出工程甘特圖及每日進度的CSV檔案,未來可以匯入其他的日報VBA工具。