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

使用openxlsx导出Dataframe到Excel:如何添加首行?数据从第二行开始

解决openxlsx添加Excel第一行内容的问题

不用创建空tibble绕弯,直接用openxlsx的writeData指定写入起始行就能搞定,步骤如下:

  • 先加载包并创建工作簿、工作表:
library(openxlsx)

# 创建工作簿对象
wb <- createWorkbook()
# 添加工作表
addWorksheet(wb, sheetName = "目标工作表")
  • 写入Excel第一行的自定义内容(比如标题),注意设置header = FALSE避免自动加列名:
# 示例:第一行写入"2024年度运营数据",从第1行第1列开始
writeData(wb, sheet = "目标工作表", x = "2024年度运营数据", 
          startRow = 1, startCol = 1, header = FALSE)
  • 写入你的数据框df1,指定从第2行开始,这样数据框的列标题会自动放在Excel第2行,数据从第3行开始:
# 写入数据框,起始行设为2
writeData(wb, sheet = "目标工作表", x = df1, startRow = 2)
  • 如果需要给第一行做格式优化(比如跨列居中、加粗),可以用样式函数:
# 创建居中加粗的样式
title_style <- createStyle(halign = "center", valign = "center", textDecoration = "bold", fontSize = 14)
# 合并第一行的所有数据列
mergeCells(wb, sheet = "目标工作表", cols = 1:ncol(df1), rows = 1)
# 应用样式到第一行
addStyle(wb, sheet = "目标工作表", style = title_style, rows = 1, cols = 1:ncol(df1), gridExpand = TRUE)
  • 最后保存文件:
saveWorkbook(wb, "格式化后的文件.xlsx", overwrite = TRUE)

之前用空tibble无效的原因是:空tibble写入时会自带空列名,反而会占用Excel的第一行位置,导致后续数据框的列标题被挤到第三行,和你的需求不符。直接指定起始行的方法更精准可控。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:17:13