写入下一个空列

我正在使用 openpyxl 将 sql 查询结果写入 Excel 文件。如果我将其写入 B 列。如何确保下次运行此脚本时它开始写入 B 列?我尝试在sheet.cell表达式中使用.max_column,但它的作用是写入类似“E”列


       A       B      C      D       E


1    Chris

2    5'11

3    215lbs

4    26Yrs

5

6

脚本:


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


慕森卡
浏览 58回答 1
1回答

动漫人物

这max_column是根据最后一个活动单元决定的。这有时会产生“错误”结果,因为即使单元格为空,如果它具有某种格式,它也会显示为活动状态并影响max_column.例如,您可能有一些带有特定字体颜色的单元格。然后,也许这些单元格中的数据已被删除,但即使您看不到它,该单元格仍然配置了字体颜色,因此该单元格存在于工作簿内部并且可能会更改值max_column。为了避免这种情况,您可能需要手动查找第一个“无数据”单元格。就像是:from openpyxl import load_workbookwb = load_workbook("book.xlsx")ws = wb.activefor cell in ws[1]:    if cell.value is None:        print(cell.col_idx)        break
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python