亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

寫入下一個空列

寫入下一個空列

慕森卡 2023-10-18 21:05:09
我正在使用 openpyxl 將 sql 查詢結果寫入 Excel 文件。如果我將其寫入 B 列。如何確保下次運行此腳本時它開始寫入 B 列?我嘗試在sheet.cell表達式中使用.max_column,但它的作用是寫入類似“E”列       A       B      C      D       E1    Chris2    5'113    215lbs4    26Yrs56腳本:def writeToExcel(1_payments_l,2_payments_l,5_payments_l):    r_1 = 20    c_1 = 12    r_2 = 37    c_2 = 12    r_5 = 47    c_5 = 12    xfile = openpyxl.load_workbook(fn)    now = datetime.now()    last_month = now.month - 1 if now.month > 1 else 12    last_month = "January February March April May June July August September October November " \                 "December".split()[last_month - 1]    sheet = xfile['PPC Cost Per Tran.']    # sheet['L19'].cell = last_month    sheet.cell(row=19, column=sheet.max_column).value = last_month    for 1pymt in 1_payments_l:        sheet.cell(row=r_1, column=sheet.max_column).value = f'{1pymt:,}'        r_1 += 1    for 2pymt in 2_payments_l:        sheet.cell(row=r_2, column=sheet.max_column).value = f'{2pymt:,}'        r_2 += 1    for 5pymt in 5_payments_l:        sheet.cell(row=r_5, column=sheet.max_column).value = f'{5pymt:,}'        r_5 += 1    xfile.save(r'C:\Users\12345\Monthly Indicators Dashboard.xlsx')    return sheet
查看完整描述

1 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

這max_column是根據最后一個活動單元決定的。這有時會產生“錯誤”結果,因為即使單元格為空,如果它具有某種格式,它也會顯示為活動狀態并影響max_column.


例如,您可能有一些帶有特定字體顏色的單元格。然后,也許這些單元格中的數據已被刪除,但即使您看不到它,該單元格仍然配置了字體顏色,因此該單元格存在于工作簿內部并且可能會更改值max_column。


為了避免這種情況,您可能需要手動查找第一個“無數據”單元格。就像是:


from openpyxl import load_workbook


wb = load_workbook("book.xlsx")

ws = wb.active

for cell in ws[1]:

    if cell.value is None:

        print(cell.col_idx)

        break


查看完整回答
反對 回復 2023-10-18
  • 1 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號