如何按行数拆分XLSX文件以适配SharePoint上传限制?
实现步骤
- 安装并加载读取、写入Excel文件的必要工具包
- 读取目标XLSX文件
- 按指定行数拆分数据集
- 循环导出拆分后的小文件
代码示例
首次运行需安装依赖包:
install.packages(c("readxl", "writexl"))
执行拆分操作:
# 加载工具包 library(readxl) library(writexl) # 读取原Excel文件,替换为你的实际文件路径 df <- read_excel("你的原文件路径.xlsx") # 设置每个拆分文件的最大行数(小于SharePoint的20000行限制,这里设为19999留余量) max_rows <- 19999 # 计算需要拆分的份数 split_num <- ceiling(nrow(df) / max_rows) # 循环拆分并保存文件 for (i in 1:split_num) { # 确定当前拆分的行范围 start_row <- (i - 1) * max_rows + 1 end_row <- min(i * max_rows, nrow(df)) # 提取数据子集 df_subset <- df[start_row:end_row, ] # 导出为带序号的新Excel文件 write_xlsx(df_subset, paste0("拆分文件_", i, ".xlsx")) }
针对示例数据的测试代码
修正你提供的示例代码参数错误后,测试拆分逻辑:
library(writexl) df2 <- data.frame(a = seq(1,6694), b = seq(1,6694), c = seq(1,6694), d = seq(1,6694), e = seq(1,6694), f = seq(1,6694), g = seq(1,6694), h = seq(1,6694), i = seq(1,6694), k = seq(1,6694), l = seq(1,6694), m = seq(1,6694), n = seq(1,6694), o = seq(1,6694), p = seq(1,6694), q = seq(1,6694)) max_rows <- 19999 split_num <- ceiling(nrow(df2) / max_rows) for (i in 1:split_num) { start_row <- (i - 1) * max_rows + 1 end_row <- min(i * max_rows, nrow(df2)) df_subset <- df2[start_row:end_row, ] write_xlsx(df_subset, paste0("示例拆分文件_", i, ".xlsx")) }
内容的提问来源于stack exchange,提问作者Ed_Gravy
相关产品推荐
相关产品推荐

