譚惟心python輸入openpyxl處理EXCEL檔案

from openpyxl import load_workbook   
book = load_workbook(filename='wb.xlsx')
print(book.sheetnames)  #列出所有工作表
"""以下也被註解暫時不執行python語言註解
#後面不執行 前後三個引號的部分也不執行 都是註解用
sheet = book['20200101p']     #工作表
rowBegin = 4                  #起始列
rowEnd = 10                  #結束列780
criticalInc = 0.01
criticalDes = 0.01
localH = sheet.cell(row=rowBegin, column=3).value
localL = sheet.cell(row=rowBegin, column=4).value
status = 0
wealth = 0
for x, row in enumerate(sheet.iter_rows(min_row = rowBegin, max_row = rowEnd)):
    rowNo = x + rowBegin        #串列編號 x 起始於 0
    dayH = row[2].value         #當日最高C欄
    dayL = row[3].value         #當日最低D欄
    dayC = row[4].value         #當日收盤E欄
    if status == -1:            #檢測波段高
        localH = dayH
    elif localH < dayH:         
        localH = dayH
    if status == 1:             #檢測波段低
        localL = dayL
    elif localL > dayL:
        localL = dayL
    sheet.cell(row = rowNo, column = 6).value = localH #寫入波段高於F欄
    sheet.cell(row = rowNo, column = 7).value = localL #寫入波段低於G欄
    if status < 1 and dayC > (1 + criticalInc)*localL:
        status = 1
    elif status > -1 and dayC < (1 - criticalDes)*localH:
        status = -1
    sheet.cell(row = rowNo, column = 8).value = status
    print(status)
book.save('result.xlsx')
"""
from openpyxl import load_workbook   
book = load_workbook(filename='wb.xlsx')
print(book.sheetnames)  #列出所有工作表
#以下也被註解暫時不執行python語言註解
#後面不執行 前後三個引號的部分也不執行 都是註解用
sheet = book['劉任昌']     #工作表
sheet['A1'].value = '超級型男劉任昌python控制excel試算表'
rowBegin = 4                  #起始列
rowEnd = 10                  #結束列780先到10
criticalInc = 0.1
criticalDes = 0.1
localH = sheet.cell(row=rowBegin, column=3).value
localL = sheet.cell(row=rowBegin, column=4).value
status = 0
wealth = 0
for x, row in enumerate(sheet.iter_rows(min_row = rowBegin, max_row = rowEnd)):
    rowNo = x + rowBegin        #串列編號 x 起始於 0
    dayH = row[2].value         #當日最高C欄
    dayL = row[3].value         #當日最低D欄
    dayC = row[4].value         #當日收盤E欄
    if status == -1:            #檢測波段高
        localH = dayH
    elif localH < dayH:         
        localH = dayH
    if status == 1:             #檢測波段低
        localL = dayL
    elif localL > dayL:
        localL = dayL
    sheet.cell(row = rowNo, column = 6).value = localH #寫入波段高於F欄
    sheet.cell(row = rowNo, column = 7).value = localL #寫入波段低於G欄
    if status < 1 and dayC > (1 + criticalInc)*localL:
        status = 1
    elif status > -1 and dayC < (1 - criticalDes)*localH:
        status = -1
    sheet.cell(row = rowNo, column = 8).value = status
book.save('result.xlsx') #結果另存為result.xlsx

留言

  1. https://www.facebook.com/robertjcliu/posts/pfbid0CpMYSefax4ktfLmpYcVv7x2z6aNtBSjnJn9EjQ5yfrjgbp12SoVxmKhSnWw7G7npl

    回覆刪除

張貼留言

這個網誌中的熱門文章

金三甲 譚惟心 期貨市場理論與實務2022Q3共50題

譚惟心JavaScript 金融計算

譚惟心:選擇權敏感度 1月 12, 2023