Как прочитать информацию о форматировании (отступе) ячейки из Excel в R? - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь импортировать большое количество файлов Excel в R. Раздражает то, что в нем содержится некоторая информация о том, отступает ли текст в ячейке. Ниже приведен пример(Я прошу прощения за использование скриншота), где записи "Main" и "Secondary" имеют отступ, потому что они принадлежат к категории "Отопление помещения" в строке выше.Строки с отступом имеют отступ слева, равный 1, в то время как строки с отступом имеют отступ, равный 0.

Excel screenshot

Я вижу из этот вопрос о том, что getCellStyle в пакете XLConnect может быть в состоянии извлечь эту информацию, но кажется, что она может использоваться только для получения именованных стилей ячеек.Можно ли извлечь эту информацию в R, даже если нет именованного стиля?

Файл Excel на снимке экрана (20 КБ) можно найти по адресу https://www.eia.gov/consumption/residential/data/2015/hc/hc1.1.xlsx (Обследование энергопотребления в жилом секторе изУправление энергетической информации США).

1 Ответ

0 голосов
/ 24 января 2019

Я должен был выполнить эту работу до публикации этого вопроса, но я нашел удивительный пакет 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...