- 加载R包
library(openxlsx)
- 写一个保存为Excel表格的函数
#设置一个保存表格函数
save_excel_with_style <- function(data_frame, file_name) {
# 创建一个Arial字体的样式
arial_style <- createStyle(fontName = "Arial", fontSize = 10,
halign = "center")
# 创建一个标题样式
title_style <- createStyle(fontName = "Arial", fontSize = 10,
fontColour = "#FFFFFF",
fgFill = "#4682b4",
halign = "center"
)
# 创建工作簿和工作表
wb <- createWorkbook(creator = "")
addWorksheet(wb, "Sheet 1")
# 写入数据
writeData(wb, "Sheet 1", data_frame)
# 计算并设置每一列的宽度
for (col in seq_along(data_frame)) {
max_width <- max(nchar(as.character(data_frame[[col]])), na.rm = T)
# 计算列中最大字符长度
setColWidths(wb, "Sheet 1", col, max(max_width, nchar(colnames(data_frame)[col])) + 2)
# 设置列宽
}
# 应用样式到所有的单元格
addStyle(wb, "Sheet 1", style = arial_style,
rows = 1:(nrow(data_frame) + 1), cols = 1:ncol(data_frame), gridExpand = T)
# 应用样式到标题行
addStyle(wb, "Sheet 1", style = title_style,
rows = 1, cols = 1:ncol(data_frame), gridExpand = T)
# 设置冻结窗格
freezePane(wb, "Sheet 1", firstRow = T)
# 保存工作簿
saveWorkbook(wb, file_name, overwrite = T)
}
- 保存导出
save_excel_with_style(mtcars, "mtcars.xlsx")
#前面为数据框名,后面为表格名