使用googlesheeapi和gspread编写专栏的最快方法

2024-04-25 07:25:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个专栏(第1页!答:A)有6000行,我想把今天的日期(todays\u date)写到列中的每个单元格。目前正在while循环中使用.values\u update()方法来执行此操作,但是由于配额限制,它花费了太多时间并给出了一个apirerror。你知道吗

x=0
while x <= len(column):
    sh.values_update(
        'Sheet1!A'+str(x),
        params={
            'valueInputOption': 'USER_ENTERED'
        } ,
        body={
            'values': todays_date]
        }
    )
    x+=1

有没有其他方法可以完全更改单元格值?你知道吗


Tags: 方法datelensh时间updatecolumnvalues
1条回答
网友
1楼 · 发布于 2024-04-25 07:25:15
  • 您想在“Sheet1”中的“a”列中的所有单元格中添加一个值。你知道吗
  • 您希望使用gspread和python来实现这一点。你知道吗
  • 您希望降低这种情况下的流程成本。你知道吗

如果我的理解是正确的,这个答案怎么样?请把这看作是几种可能的答案之一。你知道吗

在这个回答中,我使用了gspread的batch_update方法和Sheets API中batchUpdate方法的RepeatCellRequest。在这种情况下,上述情况可以通过一个API调用来实现。你知道吗

示例脚本:

在运行脚本之前,请设置变量spreadsheetIdsheetName。你知道吗

spreadsheetId = "###"  # Please set the Spreadsheet ID.
sheetName = "Sheet1"  # Please set the sheet name.

sh = client.open_by_key(spreadsheetId)
sheetId = sh.worksheet(sheetName)._properties['sheetId']
todays_date = (datetime.datetime.now() - datetime.datetime(1899, 12, 30)).days
requests = [
    {
        "repeatCell": {
            "range": {
                "sheetId": sheetId,
                "startRowIndex": 0,
                "startColumnIndex": 0,
                "endColumnIndex": 1
            },
            "cell": {
                "userEnteredValue": {
                    "numberValue": todays_date
                },
                "userEnteredFormat": {
                    "numberFormat": {
                        "type": "DATE",
                        "pattern": "dd/mm/yyyy"
                    }
                }
            },
            "fields": "userEnteredValue,userEnteredFormat"
        }
    }
]
res = sh.batch_update({'requests': requests})
print(res)
  • 当您运行上述脚本时,今天的日期以dd/mm/yyyy的格式放入列“A”的所有单元格。
    • 如果您想更改值和格式,请修改上面的脚本。你知道吗
  • (datetime.datetime.now() - datetime.datetime(1899, 12, 30)).days,日期被转换成序列号。这样,该值就可以用作Google电子表格中的date对象。你知道吗

参考文献:

如果我误解了你的问题,而这不是你想要的方向,我道歉。你知道吗

相关问题 更多 >