如何将多张Excel文件转换为一组CSV文件?


23

我有一个带有20张纸的Excel文件。有没有一种方法可以将文件快速转换为20个CSV文件-每张纸一个?

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

Answers:


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 error在Mac上使用Excel。
布莱恩

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

希望这可以帮助!


6

这是一个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!

1
另外: pip3 install openpyxl click ...然后进入ImportError: cannot import name 'get_column_letter'熊猫excel.py的第513行;我猜我的熊猫装置坏了。
Jameson Quinn

3

ExtendOffice中的一个宏,用于将选项卡保存在Documents文件夹中:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.