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

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

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

30
задан AngryHacker
24.01.2023 13:48 Количество просмотров материала 3399
Распечатать страницу

4 ответа

метод 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

EDIT:

за комментарий. Исходный макрос просто использует функцию Сохранить как (что похоже на закрытие оригинала). Если вы хотите сделать это, оставив оригинал открытым, необходимо скопировать в новую книгу, сохранить, закройте новую книгу.

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
17
отвечен gtwebb 2023-01-25 21:36

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

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

распаковать .Файл HTA.

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

enter image description here

найдите папку, где у вас есть файл xls

выберите схему именования csv и нажмите запустите конвертацию, которая конвертирует все xls файлы из папки в csv файлы

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

надеюсь, что это помогает!

8
отвечен vembutech 2023-01-25 23:53

макрос от 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
3
отвечен Michel de Ruiter 2023-01-26 02:10

вот это Python-скрипт getsheets.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!
2
отвечен Scott Ming 2023-01-26 04:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх