2

因此,我正在寻找一种将目录中的所有 .xls 文件导出到单个 .csv 文件中的方法。关于我将如何处理这个问题的任何想法?

具体来说:

说我的目录包含-

wksht1.xls
wksht2.xls
wksht3.xls
...
wksht1000.xls

我将如何将所有这些文件合并到一个 .csv 中(我们称之为 aggregate.csv)。假设每个文件都填充了最大数量的工作表/行。

所有文件都标准化为数据标准

非常感谢你!

4

1 回答 1

4

这是非 .NET 解决方案(不清楚您的“.NET”标签是否暗示 .NET 是强制性的)。

我会编写一个像这样的 VBS/WSH 脚本并从命令行运行它:

Dim oFSO
Dim oShell, oExcel, oFile, oSheet
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")
Set oExcel = CreateObject("Excel.Application")
oExcel.DisplayAlerts = False

For Each oFile In oFSO.GetFolder("C:\").Files
  If LCase(oFSO.GetExtensionName(oFile)) = "xls" Then
    With oExcel.Workbooks.Open(oFile, 0, True, , , , True, , , , False, , False)
      For Each oSheet In .Worksheets
        oSheet.SaveAs ".\" & oFile.Name & "." & oSheet.Name, 6
      Next
      .Close False, , False
    End With
  End If
Next
oExcel.Quit
oShell.Popup "Conversion complete", 10

请注意,这直接摘自这里: http: //www.computing.net/answers/programming/script-convert-excel-ss-to-csv/16265.html

但是我之前多次使用几乎相同的方法将 Access 表导出到 CSV,所以我知道 VBS 脚本是一种可行的(并且可能是最简单的)方法。

修改您认为合适的目录名称(即我认为您的文件不在“C:\”中。将其保存到名为 的文件export_to_csv.vbs中,然后运行:

cscript export_to_csv.vbs

或者

wscript export_to_csv.vbs
于 2012-05-14T20:33:53.717 回答