You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XlsxWriter的worksheet.write_formula实现列间公式计算

XlsxWriter批量写入列间计算公式方案

方法1:循环遍历写入(全版本兼容,最常用)

这种方式兼容所有Excel版本,适合已知数据总行数的场景,逐行写入对应公式即可:

import xlsxwriter

workbook = xlsxwriter.Workbook('计算结果.xlsx')
worksheet = workbook.add_worksheet()

# 假设数据共有N行,此处以100行为例,行号从1到100
total_data_rows = 100
for row_idx in range(total_data_rows):
    # XlsxWriter的行、列索引从0开始计数,C列对应列索引为2
    worksheet.write_formula(row_idx, 2, f'=A{row_idx+1}+B{row_idx+1}')

# 后续写入A、B列数据、关闭工作簿逻辑和原有逻辑一致
workbook.close()

如果需要拼接A1样式的单元格地址也可以,效果完全相同。

方法2:动态数组溢出公式(仅Excel 365/2021及以上版本支持)

如果使用场景的Excel版本都支持动态数组功能,仅需写入1次公式即可自动向下溢出填充整列:

# 写法1:指定计算范围,仅覆盖有数据的行
worksheet.write_formula('C1', '=A1:A100+B1:B100')

# 写法2:全列匹配,A、B列任意行有数据都会自动计算
worksheet.write_formula('C1', '=A:A+B:B')

注意:该方法在旧版Excel中打开会出现计算错误,仅适合内部固定使用新版Excel的场景

方法3:批量数组公式(兼容旧版Excel,无需循环)

如果需要兼容旧版Excel,又不想写循环逻辑,可以使用数组公式一次性写入整列范围:

# 一次性给C1到C100的所有单元格写入对应的求和数组公式
worksheet.write_array_formula('C1:C100', '=A1:A100+B1:B100')

写入后打开Excel时,整列公式会自动带上数组公式的大括号标记,无需手动添加。

内容的提问来源于stack exchange,提问作者Elle Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:12:02