# 使用Python程式處理Excel檔案 ## 用Python處理Excel好處 1. 可以設定無人自動化 2. 可以重複使用 3. 可以給別人使用 ## 安裝開發環境 ### 1. 安裝Python 下載路徑:https://www.python.org/downloads/ ### 2. 使用pip套件管理工具安裝openpyxl #### Windows使用者安裝步驟: - 開啟`命令提示字元` - 在終端機輸入指令`pip install openpyxl` - 在終端機輸入指令`pip list`,看到openpyxl即表示安裝完成 #### macOS使用者安裝步驟: - 開啟`終端機` - 在終端機輸入指令`pip install openpyxl` - 在終端機輸入指令`pip list`,看到openpyxl即表示安裝完成 ![](https://i.imgur.com/GVkKjLv.png =300x350) 3. 安裝你需要的IDE,我推薦Visual Studio Code > 💡Tip:也可以安裝[Anaconda](https://www.anaconda.com/products/individual)這套第三方套件管理工具,來安裝openpyxl ## 名詞定義 在寫程式以前,我們先了解Excel文件在openpyxl的名詞代號 - 一個Excel**文件**就是`workbook` - Excel文件中的**分頁表**就是`worksheet` - 分頁表中的**資料儲存格**,每一格稱為`cell(row, col)`,其中row是列,col是行 ## 使用範例 我們示範第一個Python透過`openpyxl` Library來操作Excel文件的例子 1. 請先從連結中,下載要處理的範例Excel檔案 :::info 下載檔案需先開通存取權限,請在申請權限的時候,說明: 1. 你的名字 2. 你希望學習這技能用在哪裡? ::: 💡 [下載連結](https://drive.google.com/file/d/1uyIpuxSA3EPhWZmnyYlCIQWhN6iwz3Qw/view?usp=sharing) 2. 在這個檔案中,我們可以看到四個欄位 - `PRODUCE`: 品名 - `COST PER POUND`: 單價 - `POUNDS SOLD`: 售出數量 - `TOTAL`: 總計收入 ![](https://i.imgur.com/vrPCJfC.png =420x300) 由於它是一筆筆紀錄,我們希望做到 - 將這個表單裡的Garlic 的單價(COST PER POUND),都更正成1.99元 - 將更正後的單價文字顏色改成紅色 - 將更正後的結果,另存檔案名稱為`produceSales_update.xlsx` 請參考以下範例程式碼: ``` python= import openpyxl from openpyxl.styles import Font import os # os.chdir 是 python 切換到電腦指定路徑的方法 os.chdir(r"/Users/chaoyen/Downloads") # 請填寫自己電腦裡Excel檔案的絕對路徑 wb = openpyxl.load_workbook('produceSales.xlsx') # 請填寫要處理的Excel檔案名稱 sheet = wb.worksheets[0] # 要更正的品名與其單價 price_updates_dict = {'Garlic': 1.99} #使用for loop掃描所有A欄品名,如果比對一致,就進行更正與上色 print("Processing...") for rowNum in range(2, sheet.max_row, 1): produceName = sheet.cell(rowNum, 1).value if produceName in price_updates_dict: sheet.cell(rowNum, 2).value = price_updates_dict[produceName] sheet.cell(rowNum, 2).font = Font(color='FF0000') # 將結果另存新檔 wb.save('produceSales_update.xlsx') print("Done!") ``` ## 執行結果 1. 將以上程式碼檔名存為`process.py`,並記住它的存放檔案路徑 2. 在終端機,切換到這個python檔案的所在路徑,輸入指令`python3 process.py` > 請注意要被編輯的Excel必須是關閉狀態,不然你的Python程式沒有權限修改它 ![](https://i.imgur.com/1PWgjDd.png) 3. 更正結果後的新Excel檔案`produceSales_update.xlsx`順利生成 ![](https://i.imgur.com/DD28bU8.png) 4. 開啟新Excel檔案`produceSales_update.xlsx`,確認結果無誤,所有的Garlic的單價都順利被更正並且標上紅色了! ![](https://i.imgur.com/3G7fTL3.png) ## 給更多人使用 程式做好以後,如果別人的電腦也想使用,你有三種分享方式 1. [初級] 請他的電腦也安裝Python,就可以執行你的`process.py` 2. [中級]將你的`process.py`,透過`pyInstaller`這個工具打包成.exe檔 3. [高級] 做成Web App,讓大家可以到你的網站上傳文件,處理文件後下載 我建議先以初級作法為主就好,在早期階段也比較能快速改動程式碼滿足變動需求。 ## 參考書籍 ![](https://i.imgur.com/YGcHuHI.png =130x200) ## 有任何問題或是想學什麼 目前沒有規劃課程,但是想知道大家想學什麼 歡迎追蹤我的粉絲專頁私訊我,或來信 contact@chaoyen.me https://www.instagram.com/chaoyen.me/ ###### tags: `A100程式設計入門與Excel自動工作術`