R语言 为多个excel (.xlsx)表格添加边框

R语言 为多个excel (.xlsx)表格添加边框

问题描述

我有多个数据框放入一个列表中,然后导出为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 = "" ) 

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

解决方案

这是一个方法:

使用 purrr 包中的 walk2 函数迭代列表中的每个数据帧

  1. 添加一个名为.x(名称来自列表)的新工作表。
  2. 把数据帧.y写入工作表中。
  3. 计算数据帧中的行数。
  4. 将以前定义的 样式 应用到数据帧中的所有单元格。
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)

R语言 为多个excel (.xlsx)表格添加边框

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程