Excel / ODS

Excel

Files ending in .xlsx or .xls are read with readxl. Write Excel files with -O xlsx or by naming the output .xlsx.

Reading

rush run -o sales.xlsx 'data.frame(product = c("Widget", "Gadget", "Doohickey"), q1 = c(100, 250, 75), q2 = c(120, 200, 90), q3 = c(150, 180, 110))'
rush run 'df' sales.xlsx
#> product,q1,q2,q3
#> Widget,100,120,150
#> Gadget,250,200,180
#> Doohickey,75,90,110

--input-sheet

Select a specific sheet by name or index:

rush run --input-sheet 1 'names(df)' sales.xlsx
#> product
#> q1
#> q2
#> q3

Writing

rush run -o summary.xlsx 'df |> dplyr::mutate(total = q1 + q2 + q3)' sales.xlsx
rush run 'df' summary.xlsx
#> product,q1,q2,q3,total
#> Widget,100,120,150,370
#> Gadget,250,200,180,630
#> Doohickey,75,90,110,275

Converting CSV to Excel

rush convert -o penguins.xlsx penguins.csv
rush run 'nrow(df)' penguins.xlsx
#> 333

ODS (OpenDocument Spreadsheet)

Files ending in .ods are read and written with readODS:

Reading

rush run -n 'head(df)' data.ods
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["data"]] <- rush::read("data.ods")
#> df <- dfs[[1]]
#> result <- head(df)
#> 
#> rush::write(result)

Writing

rush run -n -o output.ods 'df' data.csv
#> #!/usr/bin/env -S ir run
#> #| packages:
#> #|   - rush
#> 
#> rush::init(
#>   output = "output.ods",
#>   output_format = "ods",
#>   dpi = 300L
#> )
#> 
#> dfs <- list()
#> dfs[["data"]] <- rush::read("data.csv")
#> df <- dfs[[1]]
#> result <- df
#> 
#> rush::write(result)