0

如何使用googlesheets4R 包进行单个 API 调用以检索在特定 Drive 目录中找到的所有电子表格?

目前,我在共享的 Google Workspace Drive 文件夹中列出了可供我使用的电子表格,drive_ls然后遍历它们(使用lapply)从每个电子表格中逐一下载特定范围:

# Read Data from Google Workspace Drive -----------------------------------

DIRECTORY_id <- "[REDACTED]" # directory
focalfiles_ss <- drive_ls(path = as_id(DIRECTORY_id), type = "spreadsheet")

read_sheet_wrapper <- function(ss) {
  row_offset = 14; N_max = 100
  data_range <- cell_limits(c(row_offset, 4), c(row_offset+N_max-1, 5))
  read_sheet(ss, "MySheet", data_range, col_names = c("A", "B"))
}

# Pull down data from Workspace Drive
focalfiles <- lapply(focalfiles_ss$id, read_sheet_wrapper)
names(focalfiles) <- focalfiles_ss$name

focalfiles

这样做的问题是我进行了几个 API 调用,这很慢,尤其是因为调用偶尔会在后台自动暂停gargle以避免达到速率限制。

如果它有助于简化解决方案,如代码所示,我想强加的范围限制和其他细节在电子表格中是相同的(尽管我想保留read_sheet_wrapper函数的细节,而不是进行简单的read_sheet调用)。

4

0 回答 0