Как преобразовать файл Excel с несколькими листами в набор файлов CSV?

У меня есть файл Excel с 20 листами. Есть ли способ быстро преобразовать файл в 20 файлов CSV – по одному для каждого листа?

Конечно, я могу сделать это вручную, но мне придется обрабатывать эти файлы много, поэтому было бы здорово иметь какую-то утилиту командной строки (или даже ключи командной строки Excel).

  • Откройте CSV-файл в Excel и обновите его при каждом изменении CSV-файла.
  • Сравните две таблицы и получите отсутствующие записи
  • Истинная разница между Excel CSV и стандартным CSV
  • Как остановить Excel от преобразования значения 0503E000 в 5.03E + 02 автоматически?
  • В любом случае, если Excel 2010 обрабатывает цитируемое значение «08540» как текст без номера при открытии CSV
  • Используя средство командной строки cURL на Mac, что я могу сделать с этим скриптом, чтобы попросить его получить данные запаса, которые возвращаются без запятых?
  • Как исправить ошибку округления с плавающей запятой в Microsoft Excel для Macintosh 2011?
  • Подсчет вхождения символа в таблицу Excel
  • Можно ли создать специальный ярлык для «отмены» в Word 2013?
  • Excel: Как преобразовать «строку» в «число»?
  • Слишком много текста для ячейки Excel - как сделать прокручиваемую ячейку
  • Как подсчитать количество различных значений в диапазоне?
  • 4 Solutions collect form web for “Как преобразовать файл Excel с несколькими листами в набор файлов CSV?”

    Метод vembutech – это, безусловно, более полированное решение. Вот легкий макрос VBA, который будет экспортировать все листы из одной книги.

    Идет в папке активных книг, все имена – workbookname_sheetname.csv

     Sub exportcsv() Dim ws As Worksheet Dim path As String path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1) For Each ws In Worksheets ws.Activate ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False Next End Sub 

    РЕДАКТИРОВАТЬ:

    Для комментария. Оригинальный макрос просто использует функцию save as (вроде как закрытие оригинала). Если вы хотите сделать это, оставив оригинал открытым, вам нужно скопировать в новую книгу, сохранить, закрыть новую книгу.

     Sub exportcsv() Dim ws As Worksheet Dim path As String path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1) For Each ws In Worksheets ws.Copy ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close False Next End Sub 

    Вместо пакетного скрипта вы можете использовать конвертер XLS в CSV, который даст вам лучший пользовательский интерфейс

    Прямая ссылка: http://cwestblog.com/wp-content/uploads/2013/04/XLS-to-CSV-Converter-1.1.0.zip

    Разархивируйте файл .HTA.

    Дважды щелкните файл .HTA

    Введите описание изображения здесь

    Найдите папку, в которой у вас есть файл xls

    Выберите схему именования csv и нажмите «начать преобразование», которое преобразует все файлы xls в папку в файлы csv

    Если ваша папка имеет 3 файла xls с 3 листами, то для каждого листа будет создано 9 файлов csv, и вы можете определить файл csv с помощью схемы именования csv

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

    Макрос из ExtendOffice для сохранения вкладок в папке «Документы»:

     Sub ExportSheetsToCSV() Dim xWs As Worksheet Dim xcsvFile As String For Each xWs In Application.ActiveWorkbook.Worksheets xWs.Copy xcsvFile = CurDir & "\" & xWs.Name & ".csv" Application.ActiveWorkbook.SaveAs Filename: = xcsvFile, _ FileFormat: = xlCSV, CreateBackup: = False Application.ActiveWorkbook.Saved = True Application.ActiveWorkbook.Close Next End Sub 

    Вот скрипт python getheets.py , вы должны установить pandas и xlrd прежде чем использовать его.

    Запустите это:

     pip3 install pandas xlrd # or `pip install pandas xlrd` 

    Как это работает?

     $ python3 getsheets.py -h Usage: getsheets.py [OPTIONS] INPUTFILE Convert a Excel file with multiple sheets to several file with one sheet. Examples: getsheets filename getsheets filename -f csv Options: -f, --format [xlsx|csv] Default xlsx. -h, --help Show this message and exit. 

    Преобразовать в несколько xlsx:

     $ python3 getsheets.py goods_temp.xlsx Sheet.xlsx Done! Sheet1.xlsx Done! All Done! 

    Преобразовать в несколько csv:

     $ python3 getsheets.py goods_temp.xlsx -f csv Sheet.csv Done! Sheet1.csv Done! All Done! 
    Давайте будем гением компьютера.