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

如何用R的readxl包读取Excel中的不连续单元格区域?

解决readxl导入Excel不连续列区域的问题

readxl包的range参数不支持直接传入多个不连续的列范围,这是你之前几种写法无法生效的核心原因。以下是两种可行的实现方式:

方法1:分区域读取后合并(基于readxl)

分别读取每个目标列区域,再通过cbind()合并成一个数据框:

# 读取A:L列区域
dat1 <- readxl::read_xlsx(
  path = "C:/Users/javie/Documents/Estadística/Vitamina B12/Exoma_B12.xlsx",
  col_names = FALSE,
  sheet = 2,
  skip = 1,
  range = readxl::cell_cols("A:L")
)

# 读取AP:BA列区域
dat2 <- readxl::read_xlsx(
  path = "C:/Users/javie/Documents/Estadística/Vitamina B12/Exoma_B12.xlsx",
  col_names = FALSE,
  sheet = 2,
  skip = 1,
  range = readxl::cell_cols("AP:BA")
)

# 合并两个数据框
dat <- cbind(dat1, dat2)

方法2:使用openxlsx直接指定列号

openxlsx包支持直接通过列号向量指定不连续列,无需分多次读取:

library(openxlsx)

# 列号对应:A-L是1-12,AP是第42列,BA是第53列
dat <- read.xlsx(
  xlsxFile = "C:/Users/javie/Documents/Estadística/Vitamina B12/Exoma_B12.xlsx",
  sheet = 2,
  colNames = FALSE,
  startRow = 2, # 等效于readxl的skip=1
  cols = c(1:12, 42:53)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:32:45