获取您的命名表需要一点工作。
首先您需要加载工作簿。
library(openxlsx)
wb <- loadWorkbook("name_excel_file.xlsx")
接下来,您需要提取命名表的名称。
# get the name and the range
tables <- getTables(wb = wb,
sheet = 1)
如果您有多个命名表,它们都在tables 中。我的命名表名为 Table1。
接下来您将提取列号和行号,稍后您将使用它们从 Excel 文件中提取命名表。
# get the range
table_range <- names(tables[tables == "Table1"])
table_range_refs <- strsplit(table_range, ":")[[1]]
# use a regex to extract out the row numbers
table_range_row_num <- gsub("[^0-9.]", "", table_range_refs)
# extract out the column numbers
table_range_col_num <- convertFromExcelRef(table_range_refs)
现在您使用cols 和rows 参数重新读取Excel 文件。
# finally read it
my_df <- read.xlsx(xlsxFile = "name_excel_file.xlsx",
sheet = 1,
cols = table_range_col_num[1]:table_range_col_num[2],
rows = table_range_row_num[1]:table_range_row_num[2])
您最终会得到一个仅包含命名表内容的数据框。
我之前用过这个。我在某个地方找到了这段代码,但我不知道从哪里来了。