如何将包含多张工作表的 Excel 文件转换为一组 CSV 文件?

Ang*_*ker 26 windows microsoft-office csv microsoft-excel

我有一个 Excel 文件,里面有 20 张纸。有没有办法将文件快速转换为 20 个 CSV 文件——每张纸一个?

我当然可以手动完成,但我必须大量处理这些文件,因此拥有某种命令行实用程序(甚至 Excel 命令行开关)会很棒。

小智 18

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
Run Code Online (Sandbox Code Playgroud)

编辑:

对于评论。原始宏只是使用另存为函数(这有点像关闭原始宏)。如果要在保持原始打开状态的同时执行此操作,则需要复制到新工作簿,保存,关闭新工作簿。

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 Code Online (Sandbox Code Playgroud)


小智 11

您可以使用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 个 xls 文件和 3 张纸,那么它会为每张纸创建 9 个 csv 文件,您可以使用 csv 命名模式识别 csv 文件

希望这可以帮助!


小智 9

这里是一个Python脚本getsheets.py),你应该安装pandasxlrd使用它之前。

运行这个:

pip3 install pandas xlrd  # or `pip install pandas xlrd`
Run Code Online (Sandbox Code Playgroud)

它是如何工作的?

$ 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.
Run Code Online (Sandbox Code Playgroud)

转换成几个xlsx:

$ python3 getsheets.py goods_temp.xlsx
Sheet.xlsx Done!
Sheet1.xlsx Done!

All Done!
Run Code Online (Sandbox Code Playgroud)

转换成几个csv:

$ python3 getsheets.py goods_temp.xlsx -f csv
Sheet.csv Done!
Sheet1.csv Done!

All Done!
Run Code Online (Sandbox Code Playgroud)


Mic*_*ter 5

来自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
Run Code Online (Sandbox Code Playgroud)