Whether a file may be be xlsx, xlsm, xltx or xltm (rather than xls or xlt), based on the file signature or "magic number", rather than the filename extension.

maybe_xlsx(path)

Arguments

path

File path

Value

Logicial

Details

Only 'maybe', not 'is', because the xlsx magic number is common to all zip files, not specific to xlsx files. The inverse, 'is_xls' isn't possible either, because the xls magic number is common to other Microsoft Office files such as .doc and .ppt.

This uses some logic from Jenny Bryan's commit to the readxl package.

Examples

examples_xlsx <- system.file("extdata/examples.xlsx", package = "tidyxl") examples_xlsm <- system.file("extdata/examples.xlsm", package = "tidyxl") examples_xltx <- system.file("extdata/examples.xltx", package = "tidyxl") examples_xltm <- system.file("extdata/examples.xltm", package = "tidyxl") examples_xlsb <- system.file("extdata/examples.xlsb", package = "tidyxl") examples_xls <- system.file("extdata/examples.xls", package = "tidyxl") maybe_xlsx(examples_xlsx)
#> [1] TRUE
maybe_xlsx(examples_xlsm)
#> [1] TRUE
maybe_xlsx(examples_xltx)
#> [1] TRUE
maybe_xlsx(examples_xltm)
#> [1] TRUE
maybe_xlsx(examples_xlsb)
#> [1] TRUE
maybe_xlsx(examples_xls)
#> [1] FALSE