我用几张纸发布了一个Google表格(通过“发布到网络”),我想不下载而将它们读入R。
如果我只有一张纸,SheetA
,read.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))
。
答案 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")