Read_excel range limits

When reading a large range with read_excel there seems to be row limits of about 100,000 when using spreadsheet style range descriptions.

tb_data <- read_excel(path = "large_sheet.xlsx",
                      sheet = "Sheet1",
                      range = "A24:R115758", 
                      col_names = FALSE)

Error: Cell references aren't uniformly A1 or R1C1 format:
A24:R115758
In addition: Warning message:
Cell reference follows neither the A1 nor R1C1 format. Example:
R115758
NAs generated.

Doing it with unbounded rectangles does work.

tb_data <- read_excel(path = "large_sheet.xlsx",
                       sheet = "Sheet1",
                       range = cell_limits(c(24, 1), c(NA, 18)),
                       col_names = FALSE)

A tibble: 115,735 x 18

I'm not sure if this is a bug or a feature, but it should probably be documented somewhere.

This is a bug in CRAN cellranger, upon which readxl depends. It is already fixed in the dev version on GitHub.

So you can either install cellranger from GitHub or use your existing workaround, i.e. specify those limits in a different way.

3 Likes