在R中为多个Excel(.xlsx)工作表添加边框?

fykwrbwg  于 2023-10-21  发布在  其他
关注(0)|答案(1)|浏览(113)

我有多个嵌入式框架,我把它放到一个列表中,然后导出到Excel(.xlsx)。

library(openxlsx)
     
listas <- list('Banco geral fevereiro' = dados,
               'Gestações duplas ou triplas' = duplas_triplas,
               'Duplicidade do nome da mãe' = dupl_nomae,
               'menos22s mais1500g' = menos22s_mais1500g,
               '22a27s mais2000g' = e22a27s_mais2000g,
               '28a31s mais2700g' = e28a31s_mais2700g,
               'Mês início PN  x n° de consulta' = mes_prenat,
               'n° consultas PN branco ou ign' = pn_ign,
               'Mês de inicio PN em branco ign' = mes_pn_ign,
               'Tipo de parto em branco' = tp_parto,
               'Tipo de gravidez em branco' = tp_grav,
               'Duração da gestação não informa' = sem_gest,
               "Apgar 1 e 5 em branco" = apgar,
               'Escolaridade da mãe n informada' = escmae,
               'Cesarea assistida por enfermeir' = ces_enf,
               'Parto assistido em branco' = parto_ass,
               'Número de filhos > 13' = fil_13)

geral <- openxlsx::write.xlsx(listas , file = str_c( "Críticas de Setembro_", format( now(), format = "%d-%m-%Y" ), ".xlsx" ), na = "" )

我把它放在一个函数里。无论如何,我想像我已经做的那样导出多个工作表的文件,但我想将数据集中在每列中,并为所有行添加边框。这可能吗?

a64a0gku

a64a0gku1#

这里有一种方法,我们可以做到这一点:使用purrr包中的walk2函数,我们对listas中的每个子帧进行了遍历,
1.添加一个名为.x(列表中的名称)的新工作表。
1.将该结构写入工作表。
1.计算该数组中的行数。
1.将先前定义的style应用于该框架中的所有单元格。

library(openxlsx)
library(purrr)
library(ggplot2) # diamonds dataset

# style for borders 
style <- createStyle(border = "TopBottomLeftRight", halign = "center", valign = "center")

# fake list
listas <- list(
  'Banco geral fevereiro' = mtcars,
  'Gestações duplas ou triplas' = iris,
  'Duplicidade do nome da mãe' = diamonds
)
# my workbook
my_wb <- createWorkbook()

walk2(names(listas), listas, ~{
  addWorksheet(my_wb, .x)
  writeData(my_wb, .x, .y)
  nr <- nrow(.y)
  addStyle(my_wb, .x, style, rows = 1:nr+1, cols = 1:ncol(.y), gridExpand = TRUE)
})

saveWorkbook(my_wb, "my_file.xlsx", overwrite = TRUE)

相关问题