2012-05-14 145 views
2

所以我正在寻找一种方法来将目录中的所有.xls文件导出到一个.csv文件中。有关我如何处理这个问题的任何想法?如何将多个.xls(Excel)文件导出到一个.csv文件中?

具体做法是:

说我的目录载有以下

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

我怎么会合并所有这些文件到一个单一的.csv(我们​​将其称为是aggregate.csv)。 假设每个文件都有最大数量的工作表/行填充。

所有的文件都被归到一个数据标准

非常感谢您!

+0

这是否必须是.NET? – Marc

+0

所有Excel文件具有相同的列? –

+0

它可以是任何东西能比微软的机器上运行(使用Java,Python等) – gfppaste

回答

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 
+0

谢谢你的发现!这太棒了。 – gfppaste

相关问题