我正在尝试将大量Excel文件导入R。令人讨厌的是,某些信息包含在单元格中的文本是否缩进中。示例(对于必须使用屏幕截图,我深表歉意),其中缩进了条目“ Main”和“ Secondary”,因为它们属于上一行中的“ Space heating”类别。缩进的行的左缩进设置为1,而未缩进的行的左缩进设置为0。
我从this question中看到,在 XLConnect 包中的getCellStyle
可能能够提取此信息,但看来只能用于检索命名单元格样式。即使没有命名样式,是否也可以在R中提取此信息?
可以在https://www.eia.gov/consumption/residential/data/2015/hc/hc1.1.xlsx(美国能源信息管理局的住宅能耗调查)中找到屏幕快照中的Excel文件(20 KB)。
答案 0 :(得分:3)
在发布此问题之前,我应该已经完成了这项工作,但是我发现了一个令人惊奇的 tidyxl 软件包,它可以如下解决该问题。希望它可以帮助其他人。
library(tidyxl)
cells11 <- xlsx_cells('hc1.1.xlsx', sheets = 'data')
formats11 <- xlsx_formats('hc1.1.xlsx')
indented_cells <- which(formats11$local$alignment$indent > 0)
cells11[cells11$local_format_id %in% indented_cells, ]
这将仅显示缩进的单元格的小标题。
# A tibble: 11 x 21
sheet address row col is_blank data_type error logical numeric date character character_forma~ formula is_array formula_ref
<chr> <chr> <int> <int> <lgl> <chr> <chr> <lgl> <dbl> <dttm> <chr> <list> <chr> <lgl> <chr>
1 data A15 15 1 FALSE character NA NA NA NA Main <tibble [1 x 14~ NA FALSE NA
2 data A16 16 1 FALSE character NA NA NA NA Secondary <tibble [1 x 14~ NA FALSE NA
3 data A22 22 1 FALSE character NA NA NA NA Main <tibble [1 x 14~ NA FALSE NA
4 data A23 23 1 FALSE character NA NA NA NA Secondary <tibble [1 x 14~ NA FALSE NA
5 data A29 29 1 FALSE character NA NA NA NA Main <tibble [1 x 14~ NA FALSE NA
6 data A30 30 1 FALSE character NA NA NA NA Secondary <tibble [1 x 14~ NA FALSE NA
7 data A36 36 1 FALSE character NA NA NA NA Main <tibble [1 x 14~ NA FALSE NA
8 data A37 37 1 FALSE character NA NA NA NA Secondary <tibble [1 x 14~ NA FALSE NA
9 data A41 41 1 FALSE character NA NA NA NA Main <tibble [1 x 14~ NA FALSE NA
10 data A42 42 1 FALSE character NA NA NA NA Secondary <tibble [1 x 14~ NA FALSE NA
11 data A44 44 1 TRUE blank NA NA NA NA NA <NULL> NA FALSE NA
# ... with 6 more variables: formula_group <int>, comment <chr>, height <dbl>, width <dbl>, style_format <chr>, local_format_id <int>