Загрузка нескольких файлов Excel (с разными вкладками) и имя объекта после имени файла и вкладки - PullRequest
0 голосов
/ 08 января 2020

В настоящее время у меня есть 20 файлов Excel из того же рабочего каталога. Каждый файл Excel имеет 5 разных вкладок. Я хотел бы импортировать файлы (в одной функции) и назвать каждый объект в соответствии с именем файла и именем вкладки.

Вот что у меня так далеко. Это возвращает все 20 файлов Excel и превращает их все в объекты. Тем не менее, он делает это только для первой вкладки, то есть у меня есть только 20 объектов. В этом случае я бы хотел 100.

Например: Excel Имя файла: Apple Tab1: Лист1 Tab2: Лист2 Tab3: Лист3 Tab4: Лист4 Tab5: Лист5

Итак, при написании сценария, Я хотел бы, чтобы он вывел Apple_Sheet1, Apple_Sheet2, et c. для всех файлов Excel в одном рабочем каталоге. Очень ценится!

    dir_path <- "C:/"
    re_file <- ".xlsx" 

    file.list <- list.files(pattern = "*.xlsx")
    for(i in file.list) {
     assign(sub(".xlsx", "", i), read_excel(i))
    }

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Надеюсь, это поможет

# libraries required -------
require(readxl)
require(writexl)

# Reading and writing files -------------------------
file.list <- list.files(pattern = "*.xlsx")

for (i in file.list) {
  sheets <- excel_sheets(i)
  for (n in sheets) {
    a <- read_excel(path = i, sheet = n)

    # write to the current working directory
    write_xlsx(a, path = sprintf("./%s_%s.xlsx", sub(".xlsx", "", i), n))  #  give a path instead of ./ if you need it in a particular folder. 
                                                                           #  Example: "output/%s_%s.xlsx" make sure the folder exists.

    # or assign it in the global environment
    assign(sprintf("%s_%s", sub(".xlsx", "", i), n), a)
  }

}

Хорошего дня.

0 голосов
/ 09 января 2020
dir_path <- "C:/"
re_file <- ".xlsx" 

file.list <- list.files(pattern = "*.xlsx")
for(i in file.list) {
sheets_temp <- excel_sheets(i)
    for(j in sheets_temp) {
       assign(paste0(sub(".xlsx", "", i), "_", j), read_excel(i, j))
                          }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...