我正在使用 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
提交
取消