代码之家  ›  专栏  ›  技术社区  ›  user26544227

试图用Python(数学表达式)更新Google Sheet数据,但撇号不断出现

  •  0
  • user26544227  · 技术社区  · 5 月前

    我是编程新手,英语水平也不高,但我会尽我所能。

    所以我做了一些python代码。它的目标很简单。爬行市场数据(蒸汽市场),调整那些有双重列表数据的数据,然后将其更新到表格。另外,更新数学表达式:(市场价格)*(数量)

    我创建了github, link

    问题是,将数学表达式输入到表格中效果不佳。我的python代码不断添加撇号。所以数学表达式就变成了“字符串”。

    我以为问题是“update.append”,所以为Math制作了这样的独立函数。

    def update_formulas(sheet, data):
        print("Updating formulas...")  # 
        for idx in range(2, len(data) + 2):  # 
            formula = f"=B{idx}*C{idx}"  # 
            print(f"Updating formula in D{idx}: {formula}")  # 
            sheet.update(range_name=f"D{idx}", values=[[formula]])  # 
        print("Formulas updated successfully.")  # 
    

    但撇号问题一直存在。 result Sheet link (D2:D5)

    我用ChatGPT编写了整个代码。我研究过使用过的库和命令。这就是为什么我可以想出某种解决方案(正如我所想)。

    也许问题是试图直接键入引用单元格?喜欢

    =B{idx}*C{idx}

    但我不知道如何改变这一点。

    我尝试了什么:

    更改命令。update.append最初是“update.sheet”命令。 而分隔函数,则不能将Math识别为“String”。 但整个尝试都失败了。

    我知道我可以使用引用直接将Math键入Sheet,但我想用python代码级别解决。

    最后,我想使用参考文献!我知道我可以让数学表达式达到代码级别,比如

    公式=f“=价格*数量”

    忽略语法问题,我可以使用之前键入的数据中的价格和数量,但正如我所说,如果可以的话,我想使用引用。

    1 回复  |  直到 5 月前
        1
  •  0
  •   Nori    5 月前

    请尝试使用.update_cell,而不是使用.update方法,以防止将公式解释为字符串:

    def update_formulas(sheet, data):
        for idx in range(2, len(data) + 2):  
            formula = f"=B{idx}*C{idx}"  
            sheet.update_cell(idx, 4, formula)