cksun-usc
9/6/2017 - 5:36 PM

Color Excel Rows

Color Excel Rows

library(openxlsx)
output_subjects <- c(names(kit_res_ls), names(kit_res_bl_ls))
output_sites <- sort(unique(substr(output_subjects, 4, 6)))
wbs <- lapply(output_sites, function(x) createWorkbook(paste0("site", x)))
names(wbs) <- output_sites

rows_color <- lapply(high_res_ls, function(x) which(x %in% 'shadeRow'))
names(rows_color) <- names(kit_res_ls)
rows_color_bl <- lapply(high_res_bl_ls, function(x) which(x %in% 'shadeRow'))
names(rows_color_bl) <- names(kit_res_bl_ls)
htStyle <- createStyle(fgFill='#F29836')

csv_cols <- c("SCRNO", "RAND.DATE", "KITID", "DISPENSE.DATE", "RETURN.DATE", "REMAIN")
addsheet <- function(x, color_rows) {
  scrno <- x[1, ]$SCRNO
  site <- substr(scrno, 4, 6)
  wb <- wbs[[site]]
  x[, csv_cols] <- lapply(x[, csv_cols], as.character)
  if (! scrno %in% sheets(wb)) {
    addWorksheet(wb, scrno)
    writeData(wb, sheet=scrno, x[, csv_cols], rowNames = FALSE)
    setColWidths(wb, sheet=scrno, cols=1:length(csv_cols), widths = c(rep(13, 5), 20))
  } 
  addStyle(wb, sheet=scrno, htStyle, rows=color_rows + 1, cols=1:length(csv_cols),
           gridExpand = TRUE)
}

res_bl <- mapply(addsheet, kit_res_bl_ls, rows_color_bl, SIMPLIFY = FALSE)
res <- mapply(addsheet, kit_res_ls, rows_color, SIMPLIFY = FALSE)
lapply(names(wbs), function(x) saveWorkbook(wbs[[x]], paste0("site", x, ".xlsx"), overwrite =
                                              TRUE))