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

使用openpyxl计算同工作簿非Sheet1工作表I4单元格平均值并写入Sheet1

使用openpyxl实现自动计算多工作表平均值的脚本

刚好做过类似的需求,给你整了个开箱即用的openpyxl脚本,完美适配你的场景——不用写死工作表名称,不管后续工作表总数怎么变,每季度跑一次都能正常工作:

from openpyxl import load_workbook

# 替换成你的工作簿实际路径
workbook_path = "你的目标文件.xlsx"

# 加载工作簿(必须设置read_only=False才能写入修改)
wb = load_workbook(workbook_path)

# 存储所有有效I4单元格的数值
sensor_values = []

# 遍历工作簿内所有工作表
for sheet_name in wb.sheetnames:
    # 跳过用来保存结果的Sheet1
    if sheet_name == "Sheet1":
        continue
    current_sheet = wb[sheet_name]
    cell_data = current_sheet["I4"].value
    # 只收集数值类型数据,避免空值、文本导致计算报错
    if isinstance(cell_data, (int, float)):
        sensor_values.append(cell_data)

# 计算平均值,同时处理无有效数据的极端情况
if sensor_values:
    average_result = sum(sensor_values) / len(sensor_values)
else:
    average_result = "无有效数值数据"  # 也可以设为0,根据需求调整

# 将结果写入Sheet1,这里默认用A1做表头、A2存结果,可自行修改单元格位置
result_sheet = wb["Sheet1"]
result_sheet["A1"] = "所有Sensor类工作表I4单元格平均值"
result_sheet["A2"] = average_result

# 保存修改后的工作簿
wb.save(workbook_path)
print(f"计算完成!平均值已写入Sheet1,结果为:{average_result}")

关键细节说明:

  • 动态适配工作表数量:通过wb.sheetnames自动获取所有工作表名称,完全不依赖固定表名,新增多少个Sensor类工作表都能自动识别
  • 容错防崩溃:加入数值类型判断,遇到空值、文本等非数值内容时会自动跳过,不会直接报错终止脚本
  • 灵活调整输出位置:默认把结果写到Sheet1的A2单元格,你可以根据需求修改单元格坐标(比如改成B5、C3等)
  • 季度复用友好:只要工作簿路径不变,每季度直接运行脚本就行,完全不用调整核心逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:02:13