# 使用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即表示安裝完成

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
請先填問卷,讓我更了解你,問卷最後會提供 Excel 檔案連結
:::
💡 [問卷連結](https://forms.gle/M7ocCvSHy45sP6Fq7)
2. 在這個檔案中,我們可以看到四個欄位
- `PRODUCE`: 品名
- `COST PER POUND`: 單價
- `POUNDS SOLD`: 售出數量
- `TOTAL`: 總計收入

由於它是一筆筆紀錄,我們希望做到
- 將這個表單裡的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程式沒有權限修改它

3. 更正結果後的新Excel檔案`produceSales_update.xlsx`順利生成

4. 開啟新Excel檔案`produceSales_update.xlsx`,確認結果無誤,所有的Garlic的單價都順利被更正並且標上紅色了!

## 給更多人使用
程式做好以後,如果別人的電腦也想使用,你有三種分享方式
1. [初級] 請他的電腦也安裝Python,就可以執行你的`process.py`
2. [中級]將你的`process.py`,透過`pyInstaller`這個工具打包成.exe檔
3. [高級] 做成Web App,讓大家可以到你的網站上傳文件,處理文件後下載
我建議先以初級作法為主就好,在早期階段也比較能快速改動程式碼滿足變動需求。
## 參考書籍

## 有任何問題或是想學什麼
目前沒有規劃課程,但是想知道大家想學什麼
歡迎追蹤我的粉絲專頁私訊我,或來信 contact@chaoyen.me
https://www.instagram.com/chaoyen.me/
###### tags: `A100程式設計入門與Excel自動工作術`