Append function of xlsx in openxlsx

I use the following pseudo-code to "append" new information to the same worksheet:

df_for_workbook <- # Code to create data frame here

out_xlsx <- # File name here

# Check to see if file doesn't exist
  if (!file.exists(out_xlsx))  {
    # Create workbook using openxlsx
    wb <- createWorkbook()
    # Add worksheet
    addWorksheet(wb, "worksheetName")
    # Write data frame to new worksheet
    writeData(wb, "worksheetName", df_for_workbook)
    # Save file
    saveWorkbook(wb, file = out_xlsx)
  } else {
    # Read in existing data
    old_wb <-
      readWorkbook(out_xlsx,
                   sheet = "worksheetName",
                   detectDates = TRUE)
    # Append new data
    new_data <-
      bind_rows(old_wb,
                df_for_workbook)
    # Load and write updated data frame to existing worksheet
    wb <-  loadWorkbook(out_xlsx)
    writeData(wb, "worksheetName", new_data)
    # Save file
    saveWorkbook(wb, out_xlsx, overwrite = TRUE)
  }
4 Likes