我正在处理每个350 mb +和1,100,000+行的CSV交易数据文件。
我想知道如何通过VBA IDE对这些文件执行一些简单的快速查询,保存CSV,然后在Excel中将结果作为工作簿打开。
例如,我想这样做:
我的目标是以尽可能高的性能执行此操作。我认为此功能由Extensible Storage Engine (ESE)提供,但我不确定如何通过Excel VBA IDE使用它。
谢谢!
答案 0 :(得分:1)
我不确定如何通过Excel VBA IDE使用它。
甚至我:)
- 将CSV作为表格加载到RAM中
- 删除名为transaction_type的字段记录为“failed”的所有行
- 将结果另存为新CSV
- 在Excel中将结果作为工作簿打开
这是另一种选择。
示例代码
Option Explicit
'~~> Set reference to Microsoft Access Object Library
Sub Sample()
Dim oacApp As Access.Application
Set oacApp = New Access.Application
oacApp.OpenCurrentDatabase "C:\MyDatabase.mdb"
oacApp.DoCmd.TransferText acImportDelim, "", _
"Table1", "C:\Mycsv.csv", True
oacApp.CloseCurrentDatabase
oacApp.Quit acQuitSaveNone
Set oacApp = Nothing
End Sub
您可以通过从excel运行查询来实现。
再次使用“ .TransferText ”将其导出为CSV
示例代码
oacApp.DoCmd.TransferText acExportDelim, "Standard Output", _
"Table1", "C:\MyNewcsv.csv"
HTH
答案 1 :(得分:1)
您可以使用“文本数据库”并使用ADO(或DAO)来查询文件。有关详细信息,请参阅此文章:http://msdn.microsoft.com/en-us/library/ms974559.aspx
这样您就可以为要查询的文件创建一个schema.ini文件,并使用标准SQL查询该文件。然后,您只需将结果记录集写入文件。