R openxlsx проблема с несколькими условиями и условным форматированием

r excel

713 просмотра

1 ответ

143 Репутация автора

Не удается получить несколько экземпляров условного форматирования, учитываемых в окончательном выводе (в настоящее время используется Excel 2007 в Windows 7).

Образец кода:

library("openxlsx")    
rm(list = ls())

set.seed(123)
test <- data.frame("tag" = letters, "nums" = runif(26, -20, 20))

wb <- createWorkbook()
addWorksheet(wb, "Sheet", gridLines = TRUE)

negStyle <- createStyle(fontColour = "#9C0006", bgFill = "#FFC7CE")
posStyle <- createStyle(fontColour = "#006100", bgFill = "#C6EFCE")
ExtraNegStyle <- createStyle(fontColour = "#FFF0F5", bgFill = "#FF0000")
ExtraPosStyle <- createStyle(fontColour = "#98FB98", bgFill = "#228B22")

Heading <- createStyle(textDecoration = "bold", border = "Bottom")

writeData(wb, "Sheet", test)

conditionalFormatting(wb, "Sheet", cols = 2,
                      rows = 2:27, rule = "< -10", style = negStyle,
                      type = "expression")
conditionalFormatting(wb, "Sheet", cols = 2,
                      rows = 2:27, rule = "> 10", style = posStyle,
                      type = "expression")
conditionalFormatting(wb, "Sheet", cols = 2,
                      rows = 2:27, rule = "< -15", style = ExtraNegStyle,
                      type = "expression")
conditionalFormatting(wb, "Sheet", cols = 2,
                      rows = 2:27, rule = "> 15", style = ExtraPosStyle,
                      type = "expression")

addStyle(wb, "Sheet", cols = 1:2, rows = 1, style = Heading)

saveWorkbook(wb, file = "test.xlsx", overwrite = TRUE)

Если я открою полученную таблицу, я увижу это:

введите описание изображения здесь

Строки 7, 16 и 19 (теги f, o и r) отформатированы не так, как должно быть: я бы ожидал ярко-красный и белый шрифт. Это действительно то, чего я добиваюсь, если в Excel я зайду в Условное форматирование> Управление правилами и просто переместу правила форматирования таким образом.

введите описание изображения здесь

Я явно пытался переместить операторы conditionalFormatting в коде R вверх и вниз, но, похоже, это не сработало.

Спасибо за помощь!

Автор: Matteo Castagna Источник Размещён: 19.07.2016 09:15

Ответы (1)


0 плюса

509 Репутация автора

Пожалуйста, попробуйте обновить до последней версии (для разработчиков) openxlsx. У меня была та же проблема, что и у вас, и в какой-то момент после обновления я смог использовать несколько правил одновременно. Я не уверен, что это исправить, но, пожалуйста, дайте мне знать, если это работает. Это код для установки последней версии разработчика, опубликованный на странице автора github . Мои правила несколько сложнее, чем ваши, когда я форматирую набор столбцов на основе двух других наборов столбцов, поэтому я могу только представить, что ваш пример должен работать!

install.packages(c("Rcpp", "devtools"), dependencies=TRUE)
require(devtools)
install_github("awalker89/openxlsx")

И, конечно же, не забудьте перезапустить R / RStudio.

Автор: Patrick Williams Размещён: 14.11.2016 09:52
Вопросы из категории :
32x32