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

如何在R中按相似信息导出含合并单元格的XLSX文件

批量合并XLSX中同国家的单元格(R实现)

你可以使用openxlsx包实现批量合并相同国家的单元格,无需手动指定单元格位置,具体操作如下:

1. 安装并加载依赖包

# 首次使用时安装包
install.packages("openxlsx")
# 加载包
library(openxlsx)

2. 准备数据

library(tibble)
df <- tibble(
  country = c('Canada','Canada','Canada','Argentina','Argentina','Chile'),
  city = c('Montreal','Ottawa','Toronto','Cordoba','Mendoza','Santiago')
)

3. 计算合并单元格的范围

按country分组,自动计算每组对应的Excel单元格行范围(注意Excel表头占第1行,数据行从第2行开始):

merge_ranges <- df %>%
  group_by(country) %>%
  summarise(
    start_row = cur_group_rows()[1] + 1,  # +1偏移表头行
    end_row = cur_group_rows()[n()] + 1,
    .groups = "drop"
  ) %>%
  mutate(range = paste0("A", start_row, ":A", end_row))  # 国家列对应Excel的A列

4. 创建工作簿并设置合并规则

# 新建工作簿
wb <- createWorkbook()
# 添加工作表
addWorksheet(wb, sheetName = "countries")
# 写入数据到工作表
writeData(wb, sheet = "countries", x = df)

# 批量应用合并单元格规则
for (r in merge_ranges$range) {
  mergeCells(wb, sheet = "countries", cols = 1, rows = getRows(r))
}

# 可选:设置合并单元格垂直居中对齐
addStyle(wb, sheet = "countries", 
         style = createStyle(valign = "center"),
         rows = 2:(nrow(df)+1), cols = 1)

5. 保存XLSX文件

saveWorkbook(wb, "merged_countries.xlsx", overwrite = TRUE)

执行完成后,生成的merged_countries.xlsx文件中,同一国家的单元格会自动合并,且内容垂直居中,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:01:01