所以我正在寻找一种方法将目录中的所有.xls文件导出到单个.csv文件中。关于我如何处理这个问题的任何想法?
具体做法是:
说我的目录包含 -
wksht1.xls
wksht2.xls
wksht3.xls
...
wksht1000.xls
如何将所有这些文件合并为一个.csv(我们称之为aggregate.csv)。 假设每个文件都填充了最大量的工作表/行。
所有文件都标准化为数据标准
非常感谢!
答案 0 :(得分:4)
这是NON .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