如何将参数从excel列传递到python用户定义函数并循环每行?

如何将参数从excel列传递到python用户定义函数并循环每行?,python,function,for-loop,arguments,openpyxl,Python,Function,For Loop,Arguments,Openpyxl,我正在尝试从Excel导入数据并循环每个数据集。 我在Excel表格的A、B、C栏中有数据。 我使用openpyxl从excel工作簿导入数据。但我不知道如何引用A、B、C列是我函数的参数。 请看图片: 这是我的职责: x = 0.2 def quadratic(a, b, c, x): return a*x**2 + b*x + c 我想将参数A、B、C的A、B、C列的数据传递给每一行(在我的图像中,从第2行到第18行的每一行)。您可以将电子表格中的数据导出为CSV,并使用pyth

我正在尝试从Excel导入数据并循环每个数据集。 我在Excel表格的A、B、C栏中有数据。 我使用openpyxl从excel工作簿导入数据。但我不知道如何引用A、B、C列是我函数的参数。 请看图片:

这是我的职责:

x = 0.2
def quadratic(a, b, c, x):
    return a*x**2 + b*x + c

我想将参数A、B、C的A、B、C列的数据传递给每一行(在我的图像中,从第2行到第18行的每一行)。

您可以将电子表格中的数据导出为CSV,并使用python内置CSV模块()逐行遍历

下面根据文档中的示例改编的代码应该可以工作,但我没有运行它。 它逐行读取csv,将值强制转换为浮点数,并调用您的函数

import csv

x = 0.2
def quadratic(a, b, c, x):
    return a*x**2 + b*x + c

with open('data.csv', newline='') as csvfile:
    datareader = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for row in datareader:
        data = map(float,row)
        print(quadratic(*data,x))

使用xlwings调用excel中的二次函数,然后在excel中选择1row*3列(以获取a、b、c的值)。(请将python和excel精细保存在同一位置)


可能的重复项创建一个包含Excel公式的D列不是更容易吗?stovfl的上述评论是否解决了您的问题?谢谢您的帮助。但我不想使用单独的csv文件。因此,我使用openpyxl从excel工作手册中导入数据。我的问题是不知道如何引用A、B、C列是我函数的变量参数。
import xlwings as xw
@xw.func 
@xw.arg('num',ndim = 1) 
def quadratic(num):
    x = 0.2
    a=int(num[0])
    b=int(num[1])
    c=int(num[2])
    total = a*x**2 + b*x + c
    return total