方案1自己百度。
电脑上没有 VB6 了。记事本写的代码,将就的看吧,使用的是方案2。
查找,使用s1 ,原始数据在 s ,s转大写就变成s1,统统用大写,字符串比较防错。
每个 <Cell 中只有一个 data ,所以省掉了查找 cell 的步骤
s="....."
整个文件内容
s1=ucase(s)
'转大写
i1=1
do
i1=instr(i1,s1,"<WORKSHEET")
'从当前位置搜索工作簿开始位置
IF i1>0 then
i2=instr(i1,s1,"</WORKSHEET>")
if i2>0 then
'找到
i3=instr(i1,s1,"NAME=")
'找名字
i4=instr(i1,s3,">")
'找名字结束
工作表名=mid(s,i3+6,i4-i3-7
'取名字,需要测试常量是否正确
s3=mid(s,i1,i2-i1+1)
'取找到部分的内容
是否已解析表头=FALSE
call 解析表(s3)
'去解析表
i1=i2+1
'从已解析部分后继续下一个循环
else
exit do
'没找到结尾,说明文件没完整,不处理了。这个表不完整。
end if
else
exit do
'没找到下一个开头,结束处理
end if
loop
sub 解析表(s as string)
s1=ucase(s)
'转大写
i1=1
do
i1==instr(i1,s1,"<ROW")
IF i1>0 then
i2=instr(i1,s1,"</ROW>")
if i2>0 then
s3=mid(s,i1,i2-i1+1)
if 是否已解析表头 then
call 解析行(s3)
else
call 解析表头(s3)
'这个子程序就不写了,与 解析行 类似,只是保存的变量不同而以。
是否已解析表头=true
end if
i1=i2+1
else
exit do
end if
else
exit do
end if
end sub
sub 解析行(s as string)
s1=ucase(s)
'转大写
i1=1
do
i1==instr(i1,s1,"<DATA")
IF i1>0 then
i1=instr(i1,s1,">")
i2=instr(i1,s1,"<")
if i2>0 then
s3=mid(s,i1,i2-i1+1)
'得到单元格内容
'如何保存,可以使用全局变量的数组进行保存,也可以组合到字符串里
i1=i2+1
else
exit do
end if
else
exit do
end if
end sub