# Python 教學 | openpyxl 自動寫入資料到 excel
之前家教的學生說想學用 python 寫入資料到 excel,這個實用技巧不分享不行,所以就有這篇文章啦!這次使用的套件 openpyxl 這個模組,程式碼和操作都很簡單直觀。
## 安裝套件
<code>$ pip install openpyxl</code>
## 一點點名詞介紹
稍微記一下,等一下比較不會搞混。
<code>workbook</code> : 活頁簿
<code>sheet</code> : 分頁
<code>cell(row,col)</code> : 資料儲存格,row為第幾列,col為第幾行
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVI7v2QVpllHzsvcfYF5a3yAeSC5daq53duWcDCpW-lGImVNyC9KxQZ8udReNcAzNzrVM8kC5VfC3YcUuQC7LqGgCQhLtoO8yB8CnwYuJefxUtfCBcnLLKiB1CDhfiwBrH6iBfaUqZQxzPNa-QkaTRtFs0v-aSlx96dMwB-T2l6n4kPWc/s1600/%E5%9C%96%E7%89%871.jpg" alt="openpyxl自動寫入資料到excel" />
<h2>開啟、儲存檔案</h2>
<span style="font-weight:bold;">建立新檔 : </span><code>workbook = openpyxl.Workbook()</code><br />
<span style="font-weight:bold;">開啟舊檔 : </span><code>workbook = openpyxl.load_workbook("檔名")</code><br />
<span style="font-weight:bold;">儲存檔案 : </span><code>workbook.save("檔名")</code>
<h2>分頁相關</h2>
<span style="font-weight:bold;">取得分頁 : </span><code>sheet = workbook.worksheets[0]</code> 或 <code>sheet = workbook["分頁名"]</code><br />
有這兩種方法,可以透過是第幾個分頁或分頁名取得。另外只要新建活頁簿就會預先建立好一個名為 Sheet 的分頁,也就是第一個分頁不需要自己建立。
<span style="font-weight:bold;">建立分頁 : </span><code>sheet = workbook.create_sheet("分頁名")</code>
<span style="font-weight:bold;">命名分頁 : </span><code>sheet.title = "分頁名"</code>
<h2>資料儲存格相關</h2>
<span style="font-weight:bold;">取得資料儲存格 : </span><code>sheet.cell(row,col)</code> 或 <code>sheet['A1']</code>
也有兩種方法,可以透過第幾行第幾列或儲存格的名稱取得。
<span style="font-weight:bold;">寫入資料 : </span><code>sheet.cell(row,col).value="Hello"</code> 或 <code>sheet['A1'].value="Hello"</code>
在資料儲存格後加上.value就可以啦,這邊要注意row和col都是從1開始算,不是從0喔~
## 程式碼 Demo
```python
import openpyxl
workbook = openpyxl.Workbook() # 建立新的活頁簿
sheet = workbook.worksheets[0] # 取得第一個分頁
sheet.title = "fruit" # 重新命名分頁
# 寫入資料
sheet.cell(1,1).value = "apple"
sheet.cell(2,1).value = "banana"
sheet.cell(3,1).value = "cherry"
sheet["B1"].value = 30
sheet["B2"].value = 10
sheet["B3"].value = 60
sheet["B4"].value = "=SUM(B1:B3)" # 也可以寫入數學公式
workbook.save("test.xlsx") # 記得存檔,不然就是做白工喔
```
成果如下
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4yRVRtze_A5gevQ57Xgmq50LV-TEj5LLp24MVRdDlIuhLr_HR7eZOSbS_kzXEBQ5fVO81-NkU0D7wFY9zfRl2tNdDdnt7cZ2X9W44Zs_LmAO8Zxpn885-tLxqAjwsHVKFY5hULwk0hyphenhyphenu1YKrOxQxMq5B1B50scJZ07RsQKH0qwnPn4hI/s1600/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202023-07-27%20215527.png" alt="openpyxl自動寫入資料到excel" /><br />
當然 openpyxl 還有很多種使用方法,今天就先介紹這幾個最實用的~
我的[部落格](https://showsun63.blogspot.com)還有其他文章,歡迎大家來逛逛呦~