講者:琪雅
時間:2020/4/12
設計Office 應用程式中的自訂功能
使用者能夠客製化出符合你個人需求的巨集或是函數
其實已經有許多讓 Python 串接 Excel 的套件,這些套件能讓我們透過 Python 作出類似 VBA 巨集的功能。
設計Office 應用程式中的自訂功能
使用者能夠客製化出符合你個人需求的巨集或是函數
其實已經有許多讓 Python 串接 Excel 的套件,這些套件能讓我們透過 Python 作出類似 VBA 巨集的功能。
pip install xlwingsimport xlwings as xwworkbook = 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_returnmac 記得把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喔!