openpyxl照片處理筆記
前言
目前在處理輸出報表的實務上會遇到要貼上照片的問題,有關python在處理Excel照片部分會需要透過openpyxl裡面相關的套件進行,希望能夠達成下列情況:
給定照片之後可以依照儲存格的範圍貼上照片,儲存格可能是單一儲存格或者是合併儲存格,找出儲存格範圍寬度、儲存格範圍高度
最適合的方式計算過程
- 照片寬的,比例設定為儲存格範圍寬度/照片寬度,照片長寬同乘上這個比例放大縮小
- 照片長的,比例設定為儲存格範圍高度/照片高度,照片長寬同乘上這個比例放大縮小
目前在處理輸出報表的實務上會遇到要貼上照片的問題,有關python在處理Excel照片部分會需要透過openpyxl裡面相關的套件進行,希望能夠達成下列情況:
給定照片之後可以依照儲存格的範圍貼上照片,儲存格可能是單一儲存格或者是合併儲存格,找出儲存格範圍寬度、儲存格範圍高度
最適合的方式計算過程
權限控管顧名思義則是讓有登記的人可以進來雲端網頁中操作介面,這對於一些公司內部才能操作的內容有很大的幫助。
權限控管基本功能:
發送重置密碼時會隨意產生一組token,內容會包在電子郵件中寄送,這也算是一種多因素認證的機制。
本篇文章前端介面採用Python的Streamlit套件實作,後端邏輯則採用GAS實作,資料庫則採用GoogleSpreadSheet儲存。
正常的帳號密碼實作流程不建議採用明碼儲存,這裡只是一個實作的經驗,看之後密碼的部分要加鹽還是做哈希加密都可以再追加進去。
工程估算為提報計畫前的必要內容,所提報的概估經費關乎於計畫核定後是否會造成實際所需經費是否足夠、執行率會不會有問題。
工程估算方法有兩種:材料及類別
本篇文章希望能夠藉由雲端介面的操作來達成以下幾點需求
Streamlit是使用python語言的前端套件,他最大的好處是就能透過套件本身程式碼生成一篇篇還算能看的使用者介面,對於Html、CSS、Javascript等前端語言感到不舒服的開發者可以妥善利用,在部署上難度也不高,幾乎可以一鍵達成。
除了python本身內鍵已經有本地端sqlite可以進行資料存儲,如果資料需要上雲的話就會需要額外找尋雲端資料庫來進行資料存放,標準的關聯式有MySQL、postgreSQL、SQLserver等等比較常見的工具、非關聯式資料庫則可以透過mongoDB、firestore等等工具進行挑選。
本篇要介紹的內容是針對比較簡易的前端介面,可以用Google提供的GoogleSheet來進行資料存放,並且透過GoogleAppScripts來做後端語言進行操作。
本篇主要介紹利用 AutoCAD VBA 的物件操作+ Excel VBA 的工作表函數來簡化平坦地貌收方作業的過程。
土方計算是工程施作時有關於甲乙方針對土方數量時的重要依據,分為小型工程及大型工程來討論。
土方金額佔比不高的情況下,通常契約數量多少就多少,甲乙雙方不太會有意見。
土方金額佔比高的情況下,甲乙雙方會針對設計原始地貌進行收方作業並作成土方報告,並以此作為契約數量修正的依據,再根據結構體的設計高程及圖說指定的開挖方式重新計算挖填方數量。
地形模型的建立會根據地貌狀況而定
方格法便是使用DEM的概念,透過每個方格頂點計算方格平均高程後推算求得土方體積,高程頂點則利用IDW(反距離加權法)來進行高程賦值,插值過程會需要大量的基本運算。
有關不規則三角網另請參考筆者前文 CAD VBA@收方作業(不規則三角網法)
工程價格資料庫作業辦法有明定,新台幣1000萬元以上之公共工程於決標日起30日內必須將資料傳輸到主管機關,資料內容:
包含詳細價目表、單價分析表及資源統計表。
最容易達成的方式便是透過公共工程經費電腦估價系統(PCCES)進行預算書與契約編制。
因為大家都使用同一套系統,那麼輸出格式就能夠通用,後續要將契約內容彙整到公司內部所開發的報表系統只需要做一次工就可以了,然而非公共工程的內容會就因為個案不同而需要做細微調整。
監造報表的數量填寫為施工紀錄時最重要的基本功,填寫方式可分為以儲存格填寫、使用者表單填寫,如果掌管工地現場的工地主任對資訊比較不了解的,也很有可能會將內容寫在紙本或白板上拍照上傳群組回報,再由內業工程人員進行資料登打,無論哪種方式,填寫內容都還是以契約項目為依據,只在數量部分做琢磨而已。
契約項目以可量化型態、一式型態、百分比型態為主,這部分請參考前文,不再另外闡述,本篇內容主要介紹填寫時透過單元的概念進行組合項目的過程,當內容以單元進行時,除了工地主任的回報會比較明確,同時也可以針對單元的進行輔以相對的檢核機制與防呆機制,會省下很多麻煩。
CAD版本有非常多種,我目前有接觸過的就有AutoCAD、ZWCAD以及現在正在使用中的ProgeCAD。
在使用VBA進行二次開發的過程,需要考量引用物件模型之間的差異,就目前開發經驗中,AutoCAD與ZWCAD可以透過修改引用名稱就可以有很好的轉換體驗,但是ProgeCAD的基底物件有比較不同的設計,故本篇要來解釋從AutoCAD的VBAcode如何透過我所撰寫的物件轉換函數進行相容,讓程式碼在ProgeCAD也可以順利動起來。
縱斷面繪製時會針對需要文字說明的樁號進行插旗繪製,可能會造成插旗文字出現重疊的原因有兩個
繪製過程會考量圖紙輸出的舒適度,最小字高通常會以3.4.5為原則,文字說明會固定以30度呈現
當距離太近時可以透過調整X軸比例讓間距拉開,橫向會重疊的時候就進行上下位移,方便讀者觀看。
因此本篇就是要透過VBA抓取說明文字的外框及下線,自動調整文字重疊內容,以下進行說明: