微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据库 – 通过ADO连接打开csv-File – 列限制为255 /或只使用其他文件类型?

我有一个很大的csv文件(大约800MB),我需要通过VBA(我使用Excel 2010)从Excel文件访问来运行一些计算.现在我想避免直接打开文件,Excel需要永久完成.

因此,我决定将其作为ADO-Recordset打开,如 this post 中所述(也在stackoverflow上)
不幸的是,似乎列数限制为255至少这是我调用AdoRecordset.Fields.count方法时获得的数字.

我尝试在stackoverflow中搜索一些已解决的帖子并找到:

> Can’t transfer more than 255 records from a csv file to access
> Column limitation on CSV using Microsoft Jet OLEDB

还没有人回答第一个问题,我想知道是否可能有其他解决方案,而不是第二篇文章中描述的 – 我希望尽可能避免安装其他软件.

我的问题是:

  1. is there a way to open a csv-File as an ADO-recordset which has more than 255 avaliable fields/columns – I need about 3000 columns and 10000 rows.
  2. If this is not the case are there any other ways of reading a csv-File without actually opening it (for this takes years if the file is huge)?

csv文件不是强制性的,我实际上可以将数据转换为任何必要的格式.访问不起作用我有3000列和10000行,MS Access无法处理3000列.是否有一种文件类型可以更轻松,更快速地处理? (在使用ExcelVBA打开和阅读方面)

这一定是经常出现的问题我想知道为什么网上找不到解决办法.

解决方法

3000似乎很大,但有一个kludge:
Dim FileNum As Integer
Dim DataLine As String
Dim SplitData()


FileNum = FreeFile()
Open "Filename" For Input As #FileNum

While Not EOF(FileNum)
    Line Input #Filename,DataLine ' read in data 1 record at a time
    SplitData = Split(DataLine,",")
    'Process big array
Wend

每行读取您的数据将进入field1SplitData(0)到field3000SplitData(2999)(基于零的数组)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐