日前T編寫了幾篇關於辦公室文件的操作(辦公室自動化之Word操作、報告論文的利器-pdf解析應用),但其實還有一個操作也是常常需要用到,且大家都會接觸的,就是Excel!
尤其是在整理數據資料如何讀取或寫入Excel或是爬蟲完的資料資料要如何儲存,靠Excel 就對了!
零、說明
本次將透過一個OpenData的資料集,將資料轉換成Excel,藉此讓使用者了解如何使用openpyxl.
一、安裝
pip install openpyxl #主要透過此來讀寫Excel
pip install requests #用來打API用
二、openpyxl基本操作
#名詞
workbook => 一個Excle物件
worksheet => 工作表
row => 列
col => 行
#建立一個excel物件
wb = openpyxl.Workbook()
#取得sheet名稱
print(wb.sheetnames)
#取得目前使用的工作表
ws = wb.activate
#寫入欄位
ws.append([list])
ws[col]= {填入的資料}
#讀取Excel
wb = load_workbook('file name')
#存檔
wb.save('file name.xlsx')
三、實際使用
會了上面的操作後,我們就來使用一下,從opendata取得臺北市政府體育局場地租借系統線上場地一覽表並儲存至Excel中
本來透過API取得的JSON長這樣
#load 套件
import openpyxl
import requests
import json
#讀取資料
url ='https://vbs.sports.taipei/opendata/sports_tms.json' #opendata資料路徑
r = requests.get(url) #取得資料
json_r = result.json() #轉換成JSON格式
#建立Excel物件
wb = openpyxl.Workbook()
ws = wb.active
#先建立表頭
ws.append(['Area','Name','Address']) #因為是Demo先將資料中的三個欄位寫入Excel就好,其餘依照辦理
#將讀取出來的資料整理一下,以利等等寫入Excel
to_excel_dict = []
#逐一讀出資料,寫入Excel欄位中
for i in range(len(json_r)):
cloum_indexA = 'A' + str(i + 2)
cloum_indexB = 'B' + str(i + 2)
cloum_indexC = 'C' + str(i + 2)
ws[cloum_indexA] = json_r[i]['Area']
ws[cloum_indexB] = json_r[i]['Name']
ws[cloum_indexC] = json_r[i]['Address']
#存檔
wb.save('demo.xlsx')
四、成果展示
是不是很簡單使用了,如果每次都要整理資料,或是想把資料做更複雜的運用,都可以用此方式,有機會T編也可以說說如何讀入Excel後畫出美美的圖表,
這次轉出來的資料如下