代码之家  ›  专栏  ›  技术社区  ›  Aquiles Páez

用公式填充列而不删除标题

  •  1
  • Aquiles Páez  · 技术社区  · 6 年前

    我在一个xlsx文件中有标题数据,我正在使用 openpyxl 在电子表格中填充列,到目前为止还不错,只是当我运行代码时,列标题被公式替换了,这是一个:

    import openpyxl
    #Opening a Workbook
    wb = openpyxl.load_workbook('file.xlsx')
    #Working with an specific sheet.
    Sheet = wb.get_sheet_by_name('Data')
    #Getting the max amount of rows in a given sheet.
    row_count = Sheet.max_row
    
    
    #GEO_CODE home_county
    for i, cellObj in enumerate(Sheet['T'], 1):
        cellObj.value = '=A{0}'.format(i)
    
    #Total_Count
    for i, cellObj in enumerate(Sheet['U'], 1):
        cellObj.value = '=SUMIF($A$2:$A${1}, T{0},$D$2:$D${1})'.format(i, row_count)
    
    wb.save('file.xlsx')
    

    如果我想在第二行而不是第一行开始复制公式,我应该对代码做哪些更改?

    谢谢你的时间!

    1 回复  |  直到 6 年前
        1
  •  1
  •   stovfl    6 年前

    问题 :我想在第二行而不是第一行开始复制公式

    Sheet['T'] tuple 属于 Cell

    >>> (<Cell Data.T1>, <Cell Data.T2>, <Cell Data.T3>,...)
    

    从第二排开始,跳过第一排 细胞

    for i, cellObj in enumerate(Sheet['T'][1:], 2):
    

    注意 :一个 ,一个 openpyxl.Worksheet !

    因此,您必须从索引1切片到最后执行以下操作: [1:] 要从第2行开始,请执行以下操作 enumerate(..., 2)