Como converter um arquivo Excel com várias planilhas em um conjunto de arquivos CSV?
23
Eu tenho um arquivo do Excel com 20 folhas. Existe uma maneira de converter rapidamente o arquivo em 20 arquivos CSV - um para cada planilha?
É claro que posso fazer isso manualmente, mas terei que processar muito esses arquivos, por isso seria ótimo ter algum tipo de utilitário de linha de comando (ou até opções de linha de comando do Excel).
O método da vembutech é definitivamente uma solução mais polida. Aqui está uma macro VBA leve que exportaria todas as folhas de uma pasta de trabalho.
Vai na pasta de pastas de trabalho ativa todos os nomes são 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
EDITAR:
Para o comentário. A macro original simplesmente usa a função salvar como (que é como fechar o original). Se você quiser fazer isso, deixando o original aberto, precisará copiar para uma nova pasta de trabalho, salvar e fechar a nova pasta de trabalho.
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
selecione o esquema de nomenclatura csv e clique em Iniciar conversão, que converterá todos os arquivos xls da pasta em arquivos csv.
Se a sua pasta tiver 3 arquivos xls com 3 folhas, criará 9 arquivos csv para cada folha e você poderá identificar o arquivo csv com o esquema de nomenclatura csv
Aqui está um script python getsheets.py ( mirror ), você deve instalar pandase xlrdantes de usá-lo.
Rode isto:
pip3 install pandas xlrd # or `pip install pandas xlrd`
Como isso funciona?
$ 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.
Converta em vários xlsx:
$ python3 getsheets.py goods_temp.xlsx
Sheet.xlsx Done!
Sheet1.xlsx Done!
All Done!
Também: pip3 install openpyxl click ... e então chego ImportError: cannot import name 'get_column_letter'à linha 513 do pandas excel.py; Eu acho que minha instalação dos pandas está quebrada de alguma forma.
Jameson Quinn
3
Uma macro do ExtendOffice para salvar as guias na sua pasta Documentos:
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
no meu Excel para Mac.Em vez de script em lote, você pode usar o conversor XLS para CSV, que ofereceria uma melhor interface do usuário
Link direto: http://cwestblog.com/wp-content/uploads/2013/04/XLS-to-CSV-Converter-1.1.0.zip
Descompacte o arquivo .HTA.
Clique duas vezes no arquivo .HTA
Localize a pasta onde você tem o seu arquivo xls
selecione o esquema de nomenclatura csv e clique em Iniciar conversão, que converterá todos os arquivos xls da pasta em arquivos csv.
Se a sua pasta tiver 3 arquivos xls com 3 folhas, criará 9 arquivos csv para cada folha e você poderá identificar o arquivo csv com o esquema de nomenclatura csv
Espero que isto ajude!
fonte
Aqui está um script python getsheets.py ( mirror ), você deve instalar
pandas
exlrd
antes de usá-lo.Rode isto:
Como isso funciona?
Converta em vários xlsx:
Converta em vários csv:
fonte
pip3 install openpyxl click
... e então chegoImportError: cannot import name 'get_column_letter'
à linha 513 do pandas excel.py; Eu acho que minha instalação dos pandas está quebrada de alguma forma.Uma macro do ExtendOffice para salvar as guias na sua pasta Documentos:
fonte