2015-09-12 28 views
1

我使用googlesheets包(CRAN版本,但在此處可用:https://github.com/jennybc/googlesheets)從R中的Google工作表讀取數據,但現在想要添加行。不幸的是,每次使用gs_add_row對現有工作表,我得到以下錯誤:使用R包將行添加到Google表格

Error in gsheets_POST(lf_post_link, XML::toString.XMLNode(new_row)) : 
    client error: (405) Method Not Allowed 

我也跟着在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 

行被成功添加,我甚至得到愉快的信息Row successfully appended.

我現在提供mynewKeygs_key,因爲我想如果這是我的工作了新的一頁,並嘗試使用添加一個新行gs_add_row(注:評估這些行之前,我瀏覽到谷歌工作表,並把它公開在網路上):我曾嘗試

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 

東西:發佈時間

1)谷歌表到網上(按照https://github.com/jennybc/googlesheets/issues/126#issuecomment-118751652

2)啓用的片爲可編輯向公衆

註釋

以我實際的例子,我有一個現有的Google表格,裏面有許多工作表,我想添加行。我試圖在這裏使用一個簡單的例子來理解我的錯誤,我也可以提供一個鏈接到我想要更新的特定工作表。

我提出在這裏包的GitHub的頁面上做文章,https://github.com/jennybc/googlesheets/issues/168

回答

4

googlesheets::gs_add_row()googlesheets::gs_edit_cells()化妝POST請求到表API。這要求將可見性設置爲「私人」。

上面,當你通過註冊鍵表,請這樣做是這樣的:

gs_key(mynewKey, visibility = "private")

如果你想這對你從來沒有在瀏覽器中訪問表甚至工作,再加入lookup = FALSE以及:

gs_key(mynewKey, lookup = FALSE, visibility = "private")

+0

Thanks !!真的很感謝這個包和你的調查:) –

+0

你的回答節省了我的時間噸! –