gpt4 book ai didi

Python/gspread - 根据另一个单元格的内容更改单元格的内容

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:26 33 4
gpt4 key购买 nike

我刚刚开始使用 Python (v3.8),并尝试将其应用到工作中的实际项目中。我使用了 Google Sheets API 的视频教程,并且能够使用它来操作单元格数据。现在,我尝试使用视频中介绍的语法以这种方式操作单元格内容,但遇到了麻烦:

假设我有 20 行 + 10 列数据 - 日期、简短评论等。它应该检查 H 列的每一行中的特定字符串(“Sales”),然后根据该字符串是否是找到后,在末尾的空白列(同一行)中输入"is"或“否”,例如 J 列。

pip install gspread oauth2client
import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]

creds = ServiceAccountCredentials.from_json_keyfile_name("this_file.json", scope)

client = gspread.authorize(creds)

sheet = client.open("Spreadsheet1").sheet1

data = sheet.get_all_records()

column_H = sheet.range(8)
for p in column_H:
if "Sales" in cell.value:
sheet.update_cell("Yes") #I'd like it to update the cell 2 rows to the right (column J)
else:
sheet.update_cell("No")

这就是我到目前为止所得到的。正如您所看到的,其中没有任何内容告诉它更新同一行中相应的 J 列单元格。这里可能还存在其他问题。就像我说的,才刚刚开始。

编辑:解决方案(概念上)是否可以类似于...

    if "Sales" in cell.value:
cell.value + 2 = "Yes" #+2 to denote updating value of cell two to the right, rather than the cell it's evaluating
else:
cell.value + 2 = "No"

只是在这里吐痰。

最佳答案

  • 当“H”列的值为“Sales”时,您希望将“Yes”的值放入“J”列。
  • 当“H”列没有“Sales”值时,您希望将“No”值放入“J”列。
  • 您希望使用 gspread 和 python 来实现此目的。
  • 您已经能够使用 Sheets API 获取和输入 Google 电子表格的值。

如果我的理解是正确的,这个答案怎么样?请将此视为几个可能答案之一。

修改点:

  • 在此修改中,首先从“H”列检索值。检查“Sales”的值是否有检索到的值后,结果值将放入“J”列。

修改后的脚本:

请按如下方式修改您的脚本。

从:
data = sheet.get_all_records()

column_H = sheet.range(8)
for p in column_H:
if "Sales" in cell.value:
sheet.update_cell("Yes") #I'd like it to update the cell 2 rows to the right (column J)
else:
sheet.update_cell("No")
到:
data = sheet.get_all_values()
values = ["Yes" if e[7] == "Sales" else "No" for e in data]
cells = sheet.range("J1:J%d" % len(values))
for i, e in enumerate(cells):
e.value = values[i]
sheet.update_cells(cells)

注意:

  • 如果您不想填写“否”,请修改为values = ["Yes" if e == "Sales" else "No" for e in data] .

引用文献:

关于Python/gspread - 根据另一个单元格的内容更改单元格的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59272851/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com