여러 시트가있는 Excel 파일을 CSV 파일 세트로 변환하는 방법은 무엇입니까?


23

20 장의 Excel 파일이 있습니다. 파일을 20 개의 CSV 파일 (각 시트 당 하나씩)로 빠르게 변환하는 방법이 있습니까?

물론 수동으로 할 수는 있지만 이러한 파일을 많이 처리해야하므로 일종의 명령 줄 유틸리티 (또는 Excel 명령 줄 스위치)가 있으면 좋을 것입니다.

답변:


17

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

편집하다:

의견. 원본 매크로는 단순히 다른 이름으로 저장 기능을 사용합니다 (원본을 닫는 것과 비슷합니다). 원본을 열어 둔 상태에서이 작업을 수행하려면 새 통합 문서에 복사하고 저장하고 새 통합 문서를 닫아야합니다.

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

난 그냥 얻을 Run-time error '1004': Application-defined or object-defined errorMac 용 내 엑셀.
bryan

8

배치 스크립트 대신 더 나은 사용자 인터페이스를 제공 하는 XLS to CSV 변환기 를 사용할 수 있습니다

직접 링크 : http://cwestblog.com/wp-content/uploads/2013/04/XLS-to-CSV-Converter-1.1.0.zip

.HTA 파일을 압축 해제하십시오.

.HTA 파일을 두 번 클릭하십시오.

여기에 이미지 설명을 입력하십시오

xls 파일이있는 폴더를 찾으십시오

csv 이름 지정 스키마를 선택하고 변환 시작을 클릭하면 폴더에있는 모든 xls 파일이 csv 파일로 변환됩니다.

폴더에 3 개의 시트가있는 3 개의 xls 파일이 있으면 각 시트에 대해 9 개의 csv 파일이 생성되고 csv 이름 지정 스키마를 사용하여 csv 파일을 식별 할 수 있습니다.

이것이 도움이되기를 바랍니다!


6

다음은 파이썬 스크립트입니다 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!

1
또한 : pip3 install openpyxl click ... 그리고 나는 ImportError: cannot import name 'get_column_letter'팬더 513 번 줄에 excel.py; 팬더 설치가 어떻게 든 망가진 것 같습니다.
Jameson Quinn

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.