R: DT (пакет) экспорт данных в Excel (xlsx) с правильным форматированием (цвета ячеек) - PullRequest
0 голосов
/ 12 апреля 2020

Я решил опубликовать официальный вопрос, потому что я не мог найти решение своей проблемы с экспортом «данных», сгенерированных R-пакетом «DT».

Я хотел бы экспортировать таблицу с временным рядом, включающим цвета ячеек. Я также представляю небольшой (воспроизводимый) пример, чтобы объяснить, в чем заключается моя проблема. Конечно, мой реальный пример более сложный, но если я смогу экспортировать этот (маленький) пример в файл xlsx, он также будет работать с моим. Идея состоит в том, чтобы экспортировать всю таблицу, включая форматирование (цвета ячеек). К сожалению, цвета играют огромную роль в моем анализе, я должен как-то приятно отметить, что эти результаты соответствуют определенным критериям

Я уже проверил довольно много вариантов, как это сделать, например, с помощью R-пакетов - openxlsx, xlsx, htmlTable et c. а также «готовые» кнопки в упаковке DT. К сожалению, во всех попытках мне не удалось получить файл Excel с правильным форматированием

Вот мой маленький пример:

library(DT)
options(DT.options = list(pageLength = 5))
df = as.data.frame(cbind(matrix(round(rnorm(50), 3), 10), sample(0:1, 10, TRUE)))

datatable(df) %>% formatStyle(
  'V1', 'V6',
  backgroundColor = styleEqual(c(0, 1), c('gray', 'yellow'))
)

Я также попробовал способы, представленные на этом веб-сайте, но безуспешно. .. https://rstudio.github.io/DT/extensions.html Готовые кнопки не генерируют файлы Excel с надлежащим форматированием.

А вот решение (не работает для форматирования) с кнопками:

library(DT)
datatable(
  iris, extensions = 'Buttons', options = list(
    dom = 'Bfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
  )
)

и вот это решение в сочетании с цветами:

library(DT)
df = as.data.frame(cbind(matrix(round(rnorm(50), 3), 10), sample(0:1, 10, TRUE)))

datatable(df,, extensions = 'Buttons', options = list(
  dom = 'Bfrtip',
  buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
)) %>% formatStyle(
  'V1', 'V6',
  backgroundColor = styleEqual(c(0, 1), c('gray', 'yellow'))
)

Я был бы рад любая помощь, ссылки et c, заранее спасибо!

...