You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中为多工作表Excel文件添加边框并设置内容居中

实现多工作表Excel的居中对齐与全边框样式

完全可以实现,借助openxlsx的样式创建和批量应用功能就能搞定,以下是修改后的完整代码:

library(openxlsx)
library(stringr)
library(lubridate)

# 你的DataFrame列表(保持原代码不变)
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)

# 1. 创建统一样式:居中对齐 + 全边框
centered_border_style <- createStyle(
  textAlign = "center",  # 文本居中
  border = "all",        # 所有边框(上下左右)
  borderColour = "black" # 边框颜色为黑色
)

# 2. 创建工作簿对象
wb <- createWorkbook()

# 3. 循环遍历列表,逐个添加工作表并应用样式
for (sheet_name in names(listas)) {
  # 添加工作表
  addWorksheet(wb, sheetName = sheet_name)
  # 获取当前DataFrame
  df <- listas[[sheet_name]]
  # 写入数据(包含表头)
  writeData(wb, sheet = sheet_name, x = df, na = "")
  # 计算需要应用样式的单元格范围:从第1行(表头)到最后一行,所有列
  row_range <- 1:(nrow(df) + 1)  # +1是因为表头占了一行
  col_range <- 1:ncol(df)
  # 应用样式到整个数据区域
  addStyle(wb, sheet = sheet_name, style = centered_border_style,
           rows = row_range, cols = col_range, gridExpand = TRUE)
}

# 4. 保存工作簿
output_file <- str_c("Críticas de Setembro_", format(now(), "%d-%m-%Y"), ".xlsx")
saveWorkbook(wb, file = output_file, overwrite = TRUE)

关键说明:

  • createStyle:一次性定义好需要的样式规则,避免重复代码
  • 循环处理每个工作表:确保每个sheet都应用相同的样式规则
  • addStyle的gridExpand=TRUE:会自动把样式扩展到指定的行和列范围内的所有单元格,不用逐个单元格设置
  • 注意加载stringr和lubridate包:因为原代码用到了str_c和now()函数

内容的提问来源于stack exchange,提问作者Lana Meijinhos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 04:43:14