如何使用Python在Excel中动态为每列末尾添加合计值?
你现有代码里已经维护了userrowno变量记录当前写入的行号,每写完一行数据就+1,遍历完所有results数据后,userrowno天然就是合计行的行索引,不需要额外计算动态行数,直接基于这个变量写入即可。
具体实现代码可以加在你现有for item in results:循环结束之后,示例如下:
# 前面保留你原有遍历results写入数据的逻辑不变 for item in results: titleformat = book.add_format({'bold': True, 'align': 'center'}) center = book.add_format({'align' : 'center'}) # 原有单元格写入、列宽设置逻辑不变 # ... userrowno = userrowno + 1 # 以下是新增的合计行写入逻辑 # 直接复用你已定义的格式即可,也可以单独定义合计行专属格式 total_format = titleformat num_format = center # 写入TOTAL文本,放在User列(索引为1)的合计行位置 usersheet.write(userrowno, 1, "TOTAL", total_format) # 从SVN Commits列(索引为3)开始到Gerrit Review列(索引为6)批量写入求和公式 for col_idx in range(3, 7): # Excel行号从1开始,表头占第1行,所以数据起始行对应Excel行号为2 excel_start_row = 2 # 合计行的上一行对应Excel行号为userrowno(Python行索引从0开始,userrowno是合计行的Python索引) excel_end_row = userrowno # 拼接求和公式,用xlsxwriter内置工具转换列索引为Excel列字母 from xlsxwriter.utility import xl_col_to_name sum_formula = f"=SUM({xl_col_to_name(col_idx)}{excel_start_row}:{xl_col_to_name(col_idx)}{excel_end_row})" usersheet.write_formula(userrowno, col_idx, sum_formula, num_format)
如果后续需要调整统计的列范围,只需要修改range的起止索引即可,完全适配不同长度的数据集。
内容的提问来源于stack exchange,提问作者vesir97
相关产品推荐
相关产品推荐

