Как преобразовать файл Excel с несколькими листами в набор файлов CSV?
23
У меня есть файл Excel с 20 листами на нем. Есть ли способ быстро преобразовать файл в 20 файлов CSV - по одному на каждый лист?
Конечно, я могу сделать это вручную, но мне придется много обрабатывать эти файлы, поэтому было бы здорово иметь какую-то утилиту командной строки (или даже переключатели командной строки Excel).
Метод от Vembutech - это, безусловно, более изощренное решение. Вот облегченный макрос VBA, который экспортирует все листы из одной книги.
Заходит в папку активных книг все имена workbookname_sheetname.csv
Sub exportcsv()Dim ws AsWorksheetDim path AsString
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
РЕДАКТИРОВАТЬ:
Для комментария. Оригинальный макрос просто использует функцию сохранения как (что-то вроде закрытия оригинала). Если вы хотите сделать это, оставив оригинал открытым, вам необходимо скопировать его в новую рабочую книгу, сохранить, закрыть новую рабочую книгу.
Sub exportcsv()Dim ws AsWorksheetDim path AsString
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
выберите схему именования csv и нажмите начать преобразование, которое преобразует все файлы xls в папке csv.
Если в вашей папке 3 xls файла с 3 листами, то для каждого листа будет создано 9 csv файлов, и вы можете идентифицировать csv файл с помощью схемы именования csv
Вот скрипт 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!
Кроме того: pip3 install openpyxl click ... а затем я попадаю ImportError: cannot import name 'get_column_letter'на линию 513 панд excel.py; Я думаю, что моя установка панд как-то не работает.
Джеймсон Куинн
3
Макрос из 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
Run-time error '1004': Application-defined or object-defined error
мой Excel для Mac.Вместо пакетного скрипта вы можете использовать конвертер 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
Надеюсь это поможет!
источник
Вот скрипт Python getsheets.py ( зеркало ), вы должны установить
pandas
иxlrd
прежде чем использовать его.Запустите это:
Как это работает?
Преобразовать в несколько xlsx:
Преобразовать в несколько CSV:
источник
pip3 install openpyxl click
... а затем я попадаюImportError: cannot import name 'get_column_letter'
на линию 513 панд excel.py; Я думаю, что моя установка панд как-то не работает.Макрос из ExtendOffice для сохранения вкладок в папке «Документы»:
источник