【问题标题】:How to read cell formatting (indentation) information from Excel into R?如何将 Excel 中的单元格格式(缩进)信息读入 R?
【发布时间】:2019-01-24 21:58:39
【问题描述】:

我正在尝试将大量 Excel 文件导入到 R 中。令人恼火的是,单元格中的文本是否缩进包含一些信息。 下面是一个示例(我很抱歉不得不使用屏幕截图),其中条目“主要”和“次要”是缩进的,因为它们属于上一行中的“空间加热”类别。缩进的行的左缩进设置为 1,而非缩进的行的左缩进设置为 0。

我从this question 看到 XLConnect 包中的getCellStyle 可能能够提取此信息,但似乎只能用于检索命名单元格样式。即使没有命名样式,是否可以在 R 中提取此信息?

屏幕截图中的 Excel 文件 (20 KB) 可在 https://www.eia.gov/consumption/residential/data/2015/hc/hc1.1.xlsx(美国能源信息署的住宅能源消耗调查)中找到。

【问题讨论】:

  • 恐怕您必须直接在文件本身中修复此问题。您可以通过此处的建议部分自动化此操作:community.alteryx.com/t5/Alteryx-Designer-Discussions/…
  • 另一种方法是,如果我们知道只有“主要”和“次要”以这种方式使用,您可以搜索它们并过滤掉它们或改变它们以反映它们的类别。

标签: r excel


【解决方案1】:

我应该在发布这个问题之前完成这项工作,但我发现了神奇的 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    相关资源
    最近更新 更多