Openxlsx в R Cell слияние и центрирование содержимого

Я использую openxlsx в r для создания файлов Excel с определенными параметрами форматирования. Ниже приведен код многократного использования:

library(openxlsx)
wb <- createWorkbook()
addWorksheet(wb, "TestSheet")
df <- mtcars
df$Car <- row.names(mtcars)
row.names(df) <- NULL
df <- df[,c(length(df), 1:length(df)-1)]

forTopTit <- createStyle(fontColour = "#ffffff", fgFill = "#F4D03F",halign = "center",wrapText = TRUE,valign = "center")
forColHdr <- createStyle(fontColour = "#ffffff", fgFill = "#4F81BD",halign = "center",wrapText = TRUE,valign = "center")
forDatStl <- createStyle(fontColour = "#ffffff", halign="center")

writeData(wb,"TestSheet", "THIS IS A TEST MESSAGE", startCol = 1,startRow = 1,colNames = FALSE, rowNames = TRUE,
          headerStyle = forTopTit,borders = "surrounding",borderStyle = "medium")

writeData(wb,"TestSheet", df, startCol = 1,startRow = 2,colNames = TRUE,rowNames = FALSE,
          headerStyle = forColHdr,borders='all',borderStyle = "thin")
mergeCells(wb, "TestSheet", cols=1:length(df), rows=1)
setColWidths(wb, "TestSheet", ignoreMergedCells = TRUE,cols = 1:ncol(df), widths = "auto")
openXL(wb)

Я столкнулся с двумя проблемами:

  1. Заголовок, который я пытаюсь создать в первой строке первого столбца (которая является объединенной ячейкой), всегда выравнивается по левому краю, и ни один цвет не применяется.

  2. Я хочу центрировать данные из строки 3, столбца 2, что я не могу сделать. Я пробовал использовать следующий код:

    addStyle (wb, "TestSheet", style = forDatStl, rows = 3: nrow (df), cols = 3: length (df), gridExpand = TRUE)

Вышеупомянутый вид скрывает все точки данных, хотя он все еще остается в ячейке. Я не могу их видеть, но когда я выбираю ячейку, я вижу ее в итоговой строке над листом. Я использую Ubuntu 18.04 и Libre Office Calc.


person Apricot    schedule 07.11.2019    source источник


Ответы (1)


Ваши ячейки «скрыты», потому что вы установили цвет #ffffff, который белый, а фон белый.

Используйте другой цвет:

forDatStl <- createStyle(fontColour = "#000000", halign="center")

Чтобы центрировать объединенные ячейки:

centerStyle <- createStyle(halign = "center")
mergeCells(wb, "TestSheet", cols=1:length(df), rows=1)
addStyle(wb, "TestSheet", centerStyle, rows = 1, cols = 1)

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

person Stéphane Laurent    schedule 07.11.2019
comment
Большое спасибо, я решил проблему с цветом шрифта ... однако мне не удалось выровнять текст по центру. Еще раз спасибо - person Apricot; 07.11.2019