Я пытаюсь заполнить строку в книге Excel с openxlsx
на основе текста в столбце из этой строки. Например, если ячейка C3
содержит A
, выделите строку 3.
В идеале это не будет conditionalFormatting
. Я хотел бы, чтобы это был фактический цвет строки, основанный на тексте в ячейке, но conditionalFormatting
кажется единственным вариантом. Если я смогу сделать его реальным цветом, пожалуйста, дайте мне знать.
Приведенный ниже код показывает, что вы можете выделить строку на основе value
ячейки в этой строке, но не в том случае, если вы пытаетесь использовать текст. Кроме того, если для type
установлено значение contains
, значит, оно не принимает никаких стилей.
wb <- createWorkbook()
addWorksheet(wb, "Dependent on")
addWorksheet(wb, "containsText")
negStyle <- createStyle(fontColour = "#9C0006", bgFill = "#FFC7CE")
posStyle <- createStyle(fontColour = "#006100", bgFill = "#C6EFCE")
## highlight row based on value in column 2
writeData(wb, "Dependent on", data.frame(x = 1:10, y = runif(10)), startRow = 15)
conditionalFormatting(wb, "Dependent on", cols=1:2, rows=16:25, rule="$B16<0.5", style = negStyle)
conditionalFormatting(wb, "Dependent on", cols=1:2, rows=16:25, rule="$B16>=0.5", style = posStyle)
## cells containing text
fn <- function(x) paste(sample(LETTERS, 10), collapse = "-")
writeData(wb, "containsText", data.frame(letters = sapply(1:10, fn), numbers = 1:10))
conditionalFormatting(wb, "containsText", cols = 1:2, rows = 1:10, type = "contains", rule = "A")
openXL(wb) ## opens a temp version