講者:琪雅
時間:2020/4/12
設計Office 應用程式中的自訂功能
使用者能夠客製化出符合你個人需求的巨集或是函數
其實已經有許多讓 Python 串接 Excel 的套件,這些套件能讓我們透過 Python 作出類似 VBA 巨集的功能。
設計Office 應用程式中的自訂功能
使用者能夠客製化出符合你個人需求的巨集或是函數
其實已經有許多讓 Python 串接 Excel 的套件,這些套件能讓我們透過 Python 作出類似 VBA 巨集的功能。
pip install xlwings
import xlwings as xw
workbook = xw.Book()
# 到 workbook 代表的 excel 檔案下,開啓名爲 '工作表1' 的試算表
sheet = workbook.sheets['工作表1']
# 將該試算表裏面的 A1 儲存格的值設定成 "Hello World!"
sheet.cells(1, "A").value = "Hello World!"
for Windows
for Mac
sheet = workbook.sheets['工作表1']
sheet.cells(1, 1).value = "Hello World!"
import xlwings as xw
wb = xw.Book(r'stock_price_data.xlsx')
tsmc_sheet = wb.sheets['2330']
for i in range(3, 16):
# 到 B 欄截取今日收盤價
price_today = tsmc_sheet.cells(i, "B").value
# 到 B 欄截取迭代到的上一個 row, 也就是昨日收盤價
price_yesterday = tsmc_sheet.cells(i-1, "B").value
# 算出該筆資料的日報酬率了
daily_return = (price_today-price_yesterday) / price_yesterday
# 最後再將算出的日報酬率寫入同一列,欄為 C 的儲存格
tsmc_sheet.cells(i, "C").value = daily_return
mac 記得把B、C 改成2、3喔!
for i in range(3, 16):
daily_return = tsmc_sheet.cells(i, 'C').value
# 若該筆資料的日報酬率是上漲的 (大於 0)
if daily_return > 0:
# 就把該儲存格的底色換成紅色
# (255, 0, 0) 三個數字是代表 RGB, 也就是紅、綠、藍三種顔色的强度
tsmc_sheet.cells(i, 'C').color = (255, 0, 0)
# 若該筆資料的日報酬率是下跌的 (小於 0)
elif daily_return < 0:
# 就把該儲存格的底色換成綠色
tsmc_sheet.cells(i, 'C').color = (0, 255 , 0)
mac 記得把B、C 改成2、3喔!