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

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

我有一个包含 20 个工作表的 Excel 文件。有没有办法快速将该文件转换为 20 个 CSV 文件(每个工作表一个)?

我当然可以手动完成,但我必须大量处理这些文件,因此如果有某种命令行实用程序(甚至是 Excel 命令行开关)就太好了。

答案1

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

答案2

您可以使用批处理脚本来代替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 文件

希望这可以帮助!

答案3

这是一个 Python 脚本获取表格镜子),使用之前应先安装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!

答案4

使用 Visual Basic 循环遍历工作表并保存.csv文件。

  1. .xlsx在 Excel 中打开文件。

  2. option+F11

  3. InsertModule

  4. 将其复制到模块代码中:

    Public Sub SaveWorksheetsAsCsv()
    
     Dim WS As Excel.Worksheet
     Dim SaveToDirectory As String
    
     SaveToDirectory = "./"
    
     For Each WS In ThisWorkbook.Worksheets
        WS.SaveAs SaveToDirectory & WS.Name & ".csv", xlCSV
     Next
    
    End Sub
    
  5. 在 中查找您的.csv文件~/Library/Containers/com.microsoft.Excel/Data

    通过 Finder 导航到那里,或者直接打开终端并运行以下命令:

    open ~/Library/Containers/com.microsoft.Excel/Data
    
  6. 关闭.xlsx文件。

  7. .xlsx对其他文件重复上述操作。

相关内容