Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

sheet_relocate

Relocate one or more (work)sheets


Description

Move (work)sheets around within a (spread)Sheet. The outcome is most predictable for these common and simple use cases:

  • Reorder and move one or more sheets to the front.

  • Move a single sheet to a specific (but arbitrary) location.

  • Move multiple sheets to the back with .after = 100 (.after can be any number greater than or equal to the number of sheets).

If your relocation task is more complicated and you are puzzled by the result, break it into a sequence of simpler calls to sheet_relocate().

Usage

sheet_relocate(ss, sheet, .before = if (is.null(.after)) 1, .after = NULL)

Arguments

ss

Something that identifies a Google Sheet: its file ID, a URL from which we can recover the ID, an instance of googlesheets4_spreadsheet (returned by gs4_get()), or a dribble, which is how googledrive represents Drive files. Processed through as_sheets_id().

sheet

Sheet to relocate, in the sense of "worksheet" or "tab". You can identify a sheet by name, with a string, or by position, with a number. You can pass a vector to move multiple sheets at once or even a list, if you need to mix names and positions.

.before, .after

Specification of where to locate the sheets(s) identified by sheet. Exactly one of .before and .after must be specified. Refer to an existing sheet by name (via a string) or by position (via a number).

Value

The input ss, as an instance of sheets_id

See Also

Constructs a batch of UpdateSheetPropertiesRequests (one per sheet):

Examples

if (gs4_has_token()) {
  sheet_names <- c("alfa", "bravo", "charlie", "delta", "echo", "foxtrot")
  ss <- gs4_create("sheet-relocate-demo", sheets = sheet_names)
  sheet_names(ss)

  # move one sheet, forwards then backwards
  ss %>%
    sheet_relocate("echo", .before = "bravo") %>%
    sheet_names()
  ss %>%
    sheet_relocate("echo", .after = "delta") %>%
    sheet_names()

  # reorder and move multiple sheets to the front
  ss %>%
    sheet_relocate(list("foxtrot", 4)) %>%
    sheet_names()

  # put the sheets back in the original order
  ss %>%
    sheet_relocate(sheet_names) %>%
    sheet_names()

  # reorder and move multiple sheets to the back
  ss %>%
    sheet_relocate(c("bravo", "alfa", "echo"), .after = 10) %>%
    sheet_names()

  # clean up
  gs4_find("sheet-relocate-demo") %>%
    googledrive::drive_trash()
}

googlesheets4

Access Google Sheets using the Sheets API V4

v0.3.0
MIT + file LICENSE
Authors
Jennifer Bryan [cre, aut] (<https://orcid.org/0000-0002-6983-2759>), RStudio [cph, fnd]
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.