1

RでGoogleシートからデータを読み取るためにgooglesheetsパッケージ(CRANバージョンですが、https ://github.com/jennybc/googlesheetsで入手できます)を使用していますが、行を追加したいと思います。残念ながら、既存のシートを使用するたびgs_add_rowに、次のエラーが発生します。

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.

これが作業中の新しいシートである場合と同様に、 に提供mynewKeyし、次を使用して新しい行を追加しようとします (注: これらの行を評価する前に、Google スプレッドシートに移動して Web に公開します):gs_keygs_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) Google スプレッドシートをウェブに公開しました ( https://github.com/jennybc/googlesheets/issues/126#issuecomment-118751652に従って)

2) シートを公開して編集できるようにしました

ノート

私の実際の例では、行を追加したい多くのワークシートを含む既存の Google スプレッドシートがあります。エラーを理解するためにここで最小限の例を使用しようとしました。また、更新したい特定のワークシートへのリンクを提供することもできます。

パッケージの github ページ ( https://github.com/jennybc/googlesheets/issues/168 ) で問題を提起しました。

4

1 に答える 1

5

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")

于 2015-10-26T23:59:42.233 に答える