我正在使用 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
添加回答
舉報
0/150
提交
取消