Конвертировать несколько листов Excel в отдельные файлы CSV - PullRequest
0 голосов
/ 22 ноября 2018

Теперь я использовал инструмент xslx2csv, который я видел в других ответах на подобные вопросы по stackoverflow, и запустил код: xlsx2csv --all file.xlsx в моем терминале.Но все, что нужно, это распечатать все листы файла xlsx как csv в моем терминале, вместо создания отдельных файлов csv для каждого листа в моем текущем каталоге.

Это должно быть просто, ноЯ не могу найти простые ответы ..

Как мне решить эту проблему?Вся помощь очень ценится!

1 Ответ

0 голосов
/ 21 декабря 2018

Поскольку вы , похоже, используете R , вот решение на основе R.Вам нужны пакеты {readxl}, {purrr} и {readr}.Я «пространство имен» всех функций, так что вы знаете, откуда они.Я использую пример файла Excel из {readxl}.

path_to_xlsx <- readxl::readxl_example("datasets.xlsx")

Этот файл Excel имеет 4 листа.Имена листов читаются как excel_sheets.

sheet_names <- readxl::excel_sheets(path_to_xlsx)

Теперь мы импортируем все листы Excel в один список.

sheets <- purrr::map(sheet_names, ~ readxl::read_excel(path_to_xlsx, sheet = .x))

Мы получаем список из 4 data.frames илиtibbles.Давайте назовем их.

base::names(sheets) <- sheet_names

Теперь экспортируем все тиблы из списка в отдельные CSV за один раз.

purrr::iwalk(sheets, ~ readr::write_excel_csv2(x = .x, path = paste0(.y, ".csv")))

list.files(pattern = "\\.csv$")
#> [1] "chickwts.csv" "iris.csv"     "mtcars.csv"   "quakes.csv"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...