Mar*_*ley 1 r google-sheets r-googlesheets
我正在使用该googlesheets软件包(CRAN版本,但可从此处获取:https : //github.com/jennybc/googlesheets)从R中的Google表格中读取数据,但现在想添加行。不幸的是,每次gs_add_row用于现有工作表时,都会出现以下错误:
Error in gsheets_POST(lf_post_link, XML::toString.XMLNode(new_row)) :
client error: (405) Method Not Allowed
Run Code Online (Sandbox Code Playgroud)
我按照Github上的教程创建工作表并添加行,如下所示:
library(googlesheets)
library(dplyr)
df.colnames <- c("Project Short Name","Project Start Date","Proj Stuff")
my.df <- data.frame(a = "cannot be empty", b = "cannot be empty", c = "cannot be empty")
colnames(my.df) <- df.colnames
## Create a new workbook populated by this data.frame:
mynewSheet <- gs_new("mynewsheet", input = my.df, trim = TRUE)
## Append Element
mynewSheet <- mynewSheet %>% gs_add_row(input = c("a","b","c"))
mynewKey <- mynewSheet$sheet_key
Run Code Online (Sandbox Code Playgroud)
行添加成功,我什至收到了愉快的消息 Row successfully appended.
我现在提供mynewKey给gs_key,就好像这是我正在使用的新工作表一样,并尝试使用添加新行gs_add_row(请注意:在评估这些行之前,我导航至Google工作表并将其公开给网络):
myExistingWorkbook <- gs_key(mynewKey, visibility = "public")
## Attempt to gs_add_row
myExistingWorkbook <- myExistingWorkbook %>% gs_add_row(input = c("a","b","c"), ws="Sheet1", verbose = TRUE)
Error in gsheets_POST(lf_post_link, XML::toString.XMLNode(new_row)) :
client error: (405) Method Not Allowed
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
1)将Google表格发布到网络上(按照https://github.com/jennybc/googlesheets/issues/126#issuecomment-118751652)
2)启用工作表可公开编辑
在我的实际示例中,我有一个现有的Google表格,其中包含许多工作表,我想向其中添加行。我试图在此处使用一个最小的示例来理解我的错误,我也可以提供指向我也要更新的特定工作表的链接。
我在这里的程序包的github页面上提出了一个问题,https://github.com/jennybc/googlesheets/issues/168
googlesheets::gs_add_row()并向googlesheets::gs_edit_cells()Sheets API发出POST请求。这要求将可见性设置为“私有”。
上方,当您按键注册工作表时,请像这样进行:
gs_key(mynewKey, visibility = "private")
如果您希望此功能甚至适用于您从未在浏览器中访问过的表格,也可以添加lookup = FALSE:
gs_key(mynewKey, lookup = FALSE, visibility = "private")