複数のシートを含むExcelファイルをCSVファイルのセットに変換する方法は?


23

20シートのExcelファイルがあります。ファイルを20のCSVファイル(各シートに1つずつ)にすばやく変換する方法はありますか?

もちろん、手動で行うこともできますが、これらのファイルを大量に処理する必要があるため、何らかのコマンドラインユーティリティ(またはExcelコマンドラインスイッチ)を用意することは素晴らしいことです。

回答:


17

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

Run-time error '1004': Application-defined or object-defined errorExcel for Macに乗りました。
ブライアン

8

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

お役に立てれば!


6

ここでは、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!

いくつかの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'はパンダexcel.pyの513行目に乗ります。私のパンダのインストールが何らかの形で壊れていると思います。
ジェームソンクイン

3

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.