iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
1
Software Development

糊裡糊塗Python就上手系列 第 16

[2020鐵人賽Day16]糊裡糊塗Python就上手-Python Excel 操縱套餐(使用openpyxl)

今日目標

今日我想來點,Python 操作 Excel 套餐

What is Excel?

Excel 試算表亦稱作活頁簿(workbook),而活頁簿我們會存在 .xlsx 的副檔名檔案中。
在每個活頁簿可以有多個工作表(worksheet),就是資料填寫的區域。
每個工作表中直的是欄(column)和橫的是列(row),在指定的欄和列的區域是儲存格(cell),也就是我們輸入資料的地方。

安裝 openpyxl 模組

Install module openpyxl

可在 Anaconda 裡查看有無安裝此模組

https://ithelp.ithome.com.tw/upload/images/20201001/20091333DzEpPXPw2q.png

另可在 Termianl 視窗中,利用以下的指令來進行openpyxl套件的安裝
pip install openpyxl

首先,先匯入 openpyxl 模塊

import openpyxl

實際體驗

新建一份Excel,並新增資料內容

使用openpyxl 內 Workbook 方法建立一個新的工作簿
sheet = workbook.worksheets[0]
取得第一個工作表
sheet = workbook.worksheets[0]
設定 sheet 工作表 A1 儲存格內容為 "Hello Python, Hello Excel."
sheet['A1'] = 'Hello Python, Hello Excel.'
儲存檔案
workbook.save('test.xlsx')
完整代碼
import openpyxl

# 利用 Workbook 建立一個新的工作簿
workbook = openpyxl.Workbook()

# 取得第一個工作表
sheet = workbook.worksheets[0]

# 設定 sheet 工作表 A1 儲存格內容為 "Hello Python, Hello Excel."
sheet['A1'] = 'Hello Python, Hello Excel.'

# 儲存檔案
workbook.save('test.xlsx')

https://ithelp.ithome.com.tw/upload/images/20201001/20091333UjqU1kEfvZ.png

https://ithelp.ithome.com.tw/upload/images/20201001/20091333N7inl6qbQF.png

讀取剛剛建立的Excel,並修改儲存格A1內容

其實跟上述做法雷同,將使用openpyxl 內 load_workbook 方法,讀取 Excel 檔案
import openpyxl

# 使用 load_workbook 讀取 test.xlsx
workbook = openpyxl.load_workbook('test.xlsx')

# 取得第一個工作表
sheet = workbook.worksheets[0]

# 設定 sheet 工作表 A2 儲存格內容為 "Test Excel"
sheet['A2'] = 'Test Excel.'

# 儲存檔案
workbook.save('test.xlsx')

https://ithelp.ithome.com.tw/upload/images/20201001/20091333sqIlCwBOBX.png

https://ithelp.ithome.com.tw/upload/images/20201001/20091333NvnPzkt8bB.png

顯示出剛修正後的「test.xlsx」內容的row及column總數,並把內容顯示出來

max_row:可取出row總數
max_column:可取出column總數

import openpyxl

# 使用 load_workbook 讀取 test.xlsx
workbook = openpyxl.load_workbook('test.xlsx')

# 取得第一個工作表
sheet = workbook.worksheets[0]

# 顯示 row總數 及 column總數
print('row總數:', sheet.max_row)
print('column總數:', sheet.max_column)

# 顯示 cell 資料
for i in range(1, sheet.max_row+1):
    for j in range(1, sheet.max_column+1):
        print(sheet.cell(row = i, column = j).value)

https://ithelp.ithome.com.tw/upload/images/20201001/20091333f55q7ork6n.png

結論

Excel 檔案其實也是挺常遇到的資料儲存格式,若能熟能生巧,相信日後要產出資料檔案,一定能事半功倍。


上一篇
[2020鐵人賽Day15]糊裡糊塗Python就上手-CSV手到擒來
下一篇
[2020鐵人賽Day17]糊裡糊塗Python就上手-MySQL操作探險歷程(上)
系列文
糊裡糊塗Python就上手30

尚未有邦友留言

立即登入留言