Jak przekonwertować plik Excel z wieloma arkuszami na zestaw plików CSV?
23
Mam plik Excel z 20 arkuszami. Czy istnieje sposób na szybką konwersję pliku do 20 plików CSV - po jednym dla każdego arkusza?
Oczywiście mogę to zrobić ręcznie, ale będę musiał dużo przetwarzać te pliki, więc byłoby wspaniale mieć jakieś narzędzie wiersza polecenia (lub nawet przełączniki wiersza polecenia programu Excel).
Metoda vembutech jest zdecydowanie bardziej dopracowanym rozwiązaniem. Oto lekkie makro VBA, które eksportuje wszystkie arkusze z jednego skoroszytu.
Przechodzi do aktywnego folderu skoroszytów, wszystkie nazwy są 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
EDYTOWAĆ:
Za komentarz. Oryginalne makro po prostu używa funkcji Zapisz jako (która jest trochę jak zamknięcie oryginału). Jeśli chcesz to zrobić, pozostawiając oryginalny otwarty, musisz skopiować do nowego skoroszytu, zapisać, zamknąć nowy skoroszyt.
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
wybierz schemat nazewnictwa csv i kliknij przycisk Rozpocznij konwersję, która spowoduje konwersję wszystkich plików xls w folderze do plików csv
Jeśli twój folder zawiera 3 pliki xls z 3 arkuszami, utworzyłby 9 plików csv dla każdego arkusza i możesz zidentyfikować plik csv za pomocą schematu nazewnictwa csv
pip3 install pandas xlrd # or `pip install pandas xlrd`
Jak to działa?
$ 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.
Konwertuj na kilka xlsx:
$ python3 getsheets.py goods_temp.xlsx
Sheet.xlsx Done!
Sheet1.xlsx Done!
All Done!
Także: pip3 install openpyxl click ... a potem dostaję ImportError: cannot import name 'get_column_letter'do linii 513 pandy excel.py; Wydaje mi się, że moja instalacja pand jest w jakiś sposób zepsuta.
Jameson Quinn,
3
Makro z ExtendOffice do zapisywania kart w folderze Dokumenty:
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
się do mojego programu Excel dla komputerów Mac.Zamiast skryptu wsadowego można użyć konwertera XLS na CSV, który dałby lepszy interfejs użytkownika
Bezpośredni link: http://cwestblog.com/wp-content/uploads/2013/04/XLS-to-CSV-Converter-1.1.0.zip
Rozpakuj plik .HTA.
Kliknij dwukrotnie plik .HTA
Znajdź folder, w którym znajduje się plik xls
wybierz schemat nazewnictwa csv i kliknij przycisk Rozpocznij konwersję, która spowoduje konwersję wszystkich plików xls w folderze do plików csv
Jeśli twój folder zawiera 3 pliki xls z 3 arkuszami, utworzyłby 9 plików csv dla każdego arkusza i możesz zidentyfikować plik csv za pomocą schematu nazewnictwa csv
Mam nadzieję że to pomoże!
źródło
Oto skrypt python getsheets.py ( mirror ), powinieneś zainstalować
pandas
ixlrd
przed użyciem.Uruchom to:
Jak to działa?
Konwertuj na kilka xlsx:
Konwertuj na kilka plików csv:
źródło
pip3 install openpyxl click
... a potem dostajęImportError: cannot import name 'get_column_letter'
do linii 513 pandy excel.py; Wydaje mi się, że moja instalacja pand jest w jakiś sposób zepsuta.Makro z ExtendOffice do zapisywania kart w folderze Dokumenty:
źródło