openpyxl:如何使用 OFFSET 和 INDIRECT 函数在公式组合中引用另一个 sheet 中的单元格

openpyxl: how to refer a cell in another sheet inside a combination of formula using OFFSET and INDIRECT functions

我正在尝试为学员自动进行测验评分。我们遵循的步骤如下:

  1. 从 ODKaggregate 服务器中提取测验数据作为 CSV 文件并将其保存为 xlsx 格式
  2. 加载python中的数据(我用的是PycharmIDE)
  3. 为测验中的每个问题创建一个新的sheet
  4. 自动计算 xlsx 表格内每个问题的平均分数

我成功完成了步骤 1-3。为了自动计算每个 sheet 的平均分数,我使用了 AVERAGE、OFFSET 和 INDIRECT excel 函数。但是,我无法在 INDIRECT 函数内引用另一个 sheet 中的单元格坐标,它正在返回 SyntaxError: invalid syntax 。以下是我尝试过的代码行:

import pandas as pd
import openpyxl
from openpyxl import load_workbook, Workbook
quiz_excel=pd.read_csv (r'path_to_csv_file.csv')
quiz_excel.to_excel (r'path_to_xlsx_file.xlsx', index=None, header=True)
wb: Workbook = load_workbook (r'path_to_xlsx_file.xlsx')
sheet = wb['Sheet1']
max_row = wb.active.max_row - 1 # the '-1' is to ignore the column heading'

for i in range(max_row+1):
    wb.create_sheet('Q')

wb['Q1']['B2'] = "=AVERAGE(OFFSET(INDIRECT("'Sheet1'!AC1",1,0,1,3))" # i am getting the error from this line of code.

谁能帮我解决这个问题。非常感谢您的帮助!!

非常感谢@balmy,转义内部“with”解决了问题。我应该编辑代码以使其工作为: "=AVERAGE(OFFSET(INDIRECT("'Sheet1'!"& "AC1"),1,0,1,3))