r - 如何将 Excel 中的单元格格式(缩进)信息读入 R?
问题描述
我正在尝试将大量 Excel 文件导入 R。令人讨厌的是,单元格中的文本是否缩进包含一些信息。下面是一个示例(我很抱歉不得不使用屏幕截图),其中条目“主要”和“次要”是缩进的,因为它们属于上一行中的“空间加热”类别。缩进的行的左缩进设置为 1,而非缩进的行的左缩进设置为 0。
我从这个问题中看到,getCellStyle
在XLConnect包中可能能够提取此信息,但似乎只能用于检索命名的单元格样式。即使没有命名样式,是否可以在 R 中提取此信息?
屏幕截图 (20 KB) 中的 Excel 文件可在https://www.eia.gov/consumption/residential/data/2015/hc/hc1.1.xlsx(美国能源信息署的住宅能源消耗调查)中找到)。
解决方案
我应该在发布这个问题之前完成这项工作,但我发现了惊人的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>
推荐阅读
- office-ui-fabric - 有没有办法将多个文件添加到 office-ui-fabric-react 中的 fontFace 方法?
- mqtt - 家庭助理没有收到来自 mqtt 温度计的状态
- r - 拆分一列的行,然后用第二个元素 R 组成一列
- echarts - Echarts栏重叠
- android - 使用 Kotlin Coroutines 和 Realm 执行数据库写入会导致 UI 冻结
- ios - 评估 WKWebview 的 javascript 方法会出现问题
- simulation - 没有等待队列的 Simpy 资源
- python-3.x - Azure Python 函数中的导入模块错误 (Linux)
- c# - 将项目异步添加到 foreach 循环中的列表
- r - R:data.table 从多个 lapply 语句中构建一个函数