將數據幀寫入一係列單元格中。與sheet_write()
(又名write_sheet()
)的主要區別:
-
範圍更窄。
range_write()
實際上是針對一些單元格,而不是整個(工作)表。 -
編輯的矩形未明確設置為表格樣式。沒有做任何特別的事情:格式化標題行或凍結行。
-
列名可以被隱藏。這意味著,雖然
data
必須是一個數據幀(至少目前如此),但range_write()
實際上可以用來寫入任意數據。 -
目標(跨頁)表和(工作)表必須已存在。無法創建工作表或添加工作表。
-
目標圖紙尺寸不是 "trimmed" 到 shrink-wrap 和
data
。但是,工作表可能會增加行和/或列,以便將data
寫入用戶指定的range
。
如果您隻想向現有表添加行,您可能需要的函數是 sheet_append()
。
參數
- ss
-
識別 Google 表格的內容:
-
其文件 ID 作為字符串或
drive_id
-
我們可以從中恢複 id 的 URL
-
one-row
dribble
,這就是 googledrive 表示雲端硬盤文件的方式 -
googlesheets4_spreadsheet
的實例,這就是gs4_get()
返回的內容
通過
as_sheets_id()
處理。 -
- data
-
一個 DataFrame 。
- sheet
-
要寫入的表,在 "worksheet" 或 "tab" 的意義上。您可以通過名稱(使用字符串)或位置(使用數字)來標識工作表。如果通過
range
指定工作表,則忽略。如果兩個參數都沒有指定工作表,則默認為第一個可見工作表。 - range
-
寫在哪裏。這個
range
參數與其他地方的range
(例如range_read()
)有重要的相似之處和不同之處:-
相似之處:可以是單元格範圍,使用 A1 表示法 ("A1:D3") 或使用
cell-specification
中的幫助程序。可以組合工作表名稱和單元格範圍 ("Sheet1!A5:A") 或按名稱引用工作表(range = "Sheet1"
,盡管為了清晰起見,首選sheet = "Sheet1"
)。 -
區別:不能是命名範圍。
-
區別:
range
可以解釋為目標矩形的起點(左上角),或者更確切地說,解釋為實際的目標矩形。有關詳細信息,請參閱"Range specification" 部分。
-
- col_names
-
邏輯,表示是否發送
data
的列名。 - reformat
-
邏輯,指示是否重新格式化受影響的單元格。目前 googlesheets4 不提供對格式的真正支持,因此
reformat = TRUE
實際上意味著編輯的單元格變為未格式化。
值
輸入 ss
,作為 sheets_id
的實例
範圍規格
range_write()
的 range
參數很特殊,因為 Sheets API 可以通過兩種不同的方式實現它:
-
如果
range
恰好代表1個單元格,如"B3",則將其作為目標單元格矩形的起點(或左上角)。編輯的單元格由我們正在編寫的data
的範圍隱式確定。這使您無需根據data
的尺寸進行繁瑣的範圍計算。 -
如果
range
說明了一個包含多個單元格的矩形,則它將被解釋為要編輯的實際矩形。可以說明一個在右側(例如"B2:4")、在底部(例如"A4:C")或在右側和底部(例如cell_limits(c(2, 3), c(NA, NA))
)無邊界的矩形。請注意,矩形內的所有單元格重要提示:如果data
對象不夠大,無法填充目標矩形,則未接收新數據的單元格將被有效清除,即刪除現有的值和格式。
也可以看看
如果需要更改紙張尺寸,請創建 UpdateSheetPropertiesRequest
:
主要數據寫入是通過 UpdateCellsRequest
完成的:
其他寫入函數:gs4_create()
、gs4_formula()
、range_delete()
、range_flood()
、sheet_append()
、sheet_write()
例子
# create a Sheet with some initial, empty (work)sheets
(ss <- gs4_create("range-write-demo", sheets = c("alpha", "beta")))
#> ✔ Creating new Sheet: range-write-demo.
#>
#> ── <googlesheets4_spreadsheet> ───────────────────────────────────────────
#> Spreadsheet name: range-write-demo
#> ID: 1Ct5y25RxCDJMqinkokSc2oLTF_Y5QqLj8h1_gEEiGMw
#> Locale: en_US
#> Time zone: Etc/GMT
#> # of sheets: 2
#>
#> ── <sheets> ──────────────────────────────────────────────────────────────
#> (Sheet name): (Nominal extent in rows x columns)
#> alpha: 1000 x 26
#> beta: 1000 x 26
df <- data.frame(
x = 1:3,
y = letters[1:3]
)
# write df somewhere other than the "upper left corner"
range_write(ss, data = df, range = "D6")
#> ✔ Editing range-write-demo.
#> ✔ Writing to sheet alpha.
# view your magnificent creation in the browser
gs4_browse(ss)
# send data of disparate types to a 1-row rectangle
dat <- tibble::tibble(
string = "string",
logical = TRUE,
datetime = Sys.time()
)
range_write(ss, data = dat, sheet = "beta", col_names = FALSE)
#> ✔ Editing range-write-demo.
#> ✔ Writing to sheet beta.
# send data of disparate types to a 1-column rectangle
dat <- tibble::tibble(
x = list(Sys.time(), FALSE, "string")
)
range_write(ss, data = dat, range = "beta!C5", col_names = FALSE)
#> ✔ Editing range-write-demo.
#> ✔ Writing to sheet beta.
# clean up
gs4_find("range-write-demo") %>%
googledrive::drive_trash()
#> File trashed:
#> • range-write-demo <id: 1Ct5y25RxCDJMqinkokSc2oLTF_Y5QqLj8h1_gEEiGMw>
相關用法
- R googlesheets4 range_autofit 自動調整列或行以適應數據
- R googlesheets4 range_speedread 將工作表讀取為 CSV
- R googlesheets4 range_read_cells 從工作表中讀取單元格
- R googlesheets4 range_delete 刪除單元格
- R googlesheets4 range_flood 淹沒或清除一係列單元格
- R googlesheets4 range_read 將工作表讀入 DataFrame 中
- R googlesheets4 request_generate 生成 Google Sheets API 請求
- R googlesheets4 sheet_rename 重命名(工作)表
- R googlesheets4 sheet_delete 刪除一張或多張(工作)表
- R googlesheets4 gs4_token 生成配置的令牌
- R googlesheets4 gs4_formula Google 表格公式類
- R googlesheets4 gs4_random 生成隨機工作表名稱
- R googlesheets4 gs4_user 獲取當前用戶的信息
- R googlesheets4 spread_sheet 將單元格 DataFrame 展開為電子表格形狀
- R googlesheets4 sheet_properties 獲取有關(工作)表的數據
- R googlesheets4 sheets_id Sheets_id 類
- R googlesheets4 gs4_auth_configure 編輯和查看身份驗證配置
- R googlesheets4 gs4_fodder 創建有用的電子表格填充程序
- R googlesheets4 sheet_append 將行附加到工作表
- R googlesheets4 gs4_endpoints 列出工作表端點
- R googlesheets4 gs4_auth 授權 googlesheets4
- R googlesheets4 gs4_find 查找 Google 表格
- R googlesheets4 sheet_write (覆蓋)將新數據寫入工作表
- R googlesheets4 gs4_examples 示例表
- R googlesheets4 googlesheets4-configuration 穀歌表4配置
注:本文由純淨天空篩選整理自Jennifer Bryan等大神的英文原創作品 (Over)write new data into a range。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。