用vb编程,怎么将csv文件中的数据的某一列取出来(假设n行8列,我要第二列的所有数据),要一个一个取

如题所述

csv文件是带逗号格式的文本,所以直接读取即可,下面这个例子是读取出第二例数据放到一个数组中
Private Sub Command1_Click()
Dim csvfile As String
Dim d() As String
Dim i As Integer
i = 0
csvfile = "c:\file.csv" 'CSV文件路径与用户名

Open csvfile For Input As #1 '打开文件
Do While Not EOF(1) '判断是否到达文件尾部
ReDim Preserve d(i) '重新定义数组上标
Line Input #1, d(i) '读取整行数据
d(i) = Split(d(i), ",")(1) '读取这行数据按逗号分隔的第二个数据,0是第一个数据
d(i) = Replace(d(i), """", "") '如果数据希望去除两边的双引号可以添加这行代码
i = i + 1 '行数加1
Loop '循环
Close #1 '关闭文件
i = i - 1 '此时的i值是文件的行数
End Sub追问

用不用在vb中添加: Microsoft Excel XX.X Object Library的引用

追答

不用的,这个是直接以文本格式打开的,只适用CSV格式的文件
d(i)这个数组里放的是你需要的数据

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-26
就是和读文件一个道理
只不过csv是固定用逗号分隔而已
百度一下“VB 读文件” 例子很多
然后循环读取的时候
做一个双层循环
固定读第二列就可以了
第2个回答  推荐于2017-12-16
示意:(注意,不是示例)
Dim S(0) as String,Tmp() as String
Do While Not FileEnd '应该是 EOF
 Tmp = Split(ReadNewLine,",") '读一行,并以逗号分切为字符串数组
 If Ubound(Tmp)>=2 then '若存在第二列
  s(Ubound(s)) = Tmp(2) '保存在S的最后一个元素中
  ReDim Preserve S(Ubound(S)+1) 'S扩展一个
 End If
Loop
大概意思是这样了。本回答被网友采纳
第3个回答  2012-09-26
  可以解压啊
相似回答