web-dev-qa-db-ja.com

複数のシートを含むExcelファイルを一連のCSVファイルに変換する方法

20枚のExcelファイルがあります。シートごとに1つずつ、20個のCSVファイルにすばやく変換する方法はありますか?

私はもちろん手動でそれを行うことができますが、私はこれらのファイルをたくさん処理しなければならないので、ある種のコマンドラインユーティリティ(あるいはExcelコマンドラインスイッチさえ)を持つことは素晴らしいことです。

23
AngryHacker

Vembutechによる方法は、間違いなくもっと洗練されたソリューションです。これは、1つのブックからすべてのシートをエクスポートする軽量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
17
gtwebb

バッチスクリプトの代わりに 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つのシートを持つ3つのxlsファイルがある場合、各シートに9つのcsvファイルが作成され、csv命名スキーマを使用してcsvファイルを識別できます。

お役に立てれば!

8
vembutech

これがpythonスクリプト getsheets.pymirror )です。使用する前にpandasxlrdをインストールしてください。

これを実行してください。

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!
4
Scott Ming

Documentsフォルダにタブを保存する 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