在已发布的Google表格中阅读而无需下载或验证

时间:2018-11-02 17:20:57

标签: r

我用几张纸发布了一个Google表格(通过“发布到网络”),我想不下载而将它们读入R。

如果我只有一张纸,SheetAread.csv可以解决问题。这有效:

sheetA <- read.csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQctdWKg1rPRdpaOCZhhehYdWL51AaddThDT44-JUpYHUaPpnW6j83pWtbXCRfUPeVXiMI2boSwoRZY/pub?output=csv")

但是我有多个工作表,因此我尝试将readxl的{​​{1}}结尾放在URL上。这无效,因为URL无效:

output=xlsx

是否可以从已发布的Google表格中读取与library(readxl) sheetA <- read_excel("https://docs.google.com/spreadsheets/d/e/2PACX-1vQctdWKg1rPRdpaOCZhhehYdWL51AaddThDT44-JUpYHUaPpnW6j83pWtbXCRfUPeVXiMI2boSwoRZY/pub?output=xlsx", sheet="sheetA") 类似的特定表格(没有临时文件)?我尝试共享工作表(通过“共享”,而不是“发布到网络”)并使用read.csv,但这需要我进行身份验证,而我不想这样做。也许我没有正确使用googledrive::drive_get(as_id(myURL))

1 个答案:

答案 0 :(得分:1)

我对googlesheets软件包感到很幸运。您需要先为工作表键入密钥,这需要进行身份验证。但是一旦有了密钥,只要工作表是公开/已发布的,就不需要进行身份验证。

library(tidyverse)
library(googlesheets)

#list all sheets, will require authentication
my_key <- gs_ls() %>% 
  #filter to the sheet you're interested in and grab the key
  filter(sheet_title == "My Sheet Title") %>% 
  select(sheet_key)

#using the key, you can grab public/published worksheets without authentication
gs_key(my_key$sheet_key) %>%
  gs_read(ws = "Worksheet Name")