发布于 2009-09-29 11:07:14
0楼
用TXT太麻烦了。我最近学习了一种使用OLEDB方式打开EXCEL文件的方法,比较不错。杜绝了EXCEL进程存在不能写入数据的问题 网上资料很多 去百度搜索“EXCEL OLEDB” 就可以了。
另外传上我实验过地代码分享:
读取EXCEL
Dim oConn
Dim oRS
Dim strcon
Dim strsql
Dim str
Dim str1
Set str1=HMIRuntime.tags("str1")
Set str=HMIRuntime.tags("str")
Set oConn=CreateObject("ADODB.Connection")
Set oRS=CreateObject("ADODB.RecordSet")
strcon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\BOOK1.xls;Extended Properties=Excel 8.0"
strsql="Select * from [Sheet1$A1:C10]"
oConn.ConnectionString=strcon
oConn.Open
oRS.Open strsql,oConn,3,3
str.Value=oRs.Fields(0).Value
str.Write
MsgBox "21",,"ssssss"
str1.Value=oRs.Fields(1).Value
str1.Write
MsgBox "11",,"ssssss"
oRS.MoveNext
str.Value=oRs.Fields(1).Value
str.Write
MsgBox "21",,"ssssss"
str1.Value=oRs.Fields(0).Value
str1.Write
MsgBox "12",,"ssssss"
oRS.MoveNext
str.Value=oRs.Fields(1).Value
str.Write
MsgBox "21",,"ssssss"
str1.Value=oRs.Fields(0).Value
str1.Write
oRS.MoveNext
MsgBox "21",,"ssssss"
str.Value=oRs.Fields(1).Value
str.Write
MsgBox "21",,"ssssss"
str1.Value=oRs.Fields(0).Value
str1.Write
oConn.Close
MsgBox "22",,"ssssss"
写EXCEL
Dim oConn
Dim oRS
Dim strcon
Dim strsql
Dim str
Dim str1
Set str1=HMIRuntime.tags("str1")
Set str=HMIRuntime.tags("str")
Set oConn=CreateObject("ADODB.Connection")
Set oRS=CreateObject("ADODB.RecordSet")
strcon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\BOOK1.xls;Extended Properties=Excel 8.0"
strsql="Select * from [Sheet1$A1:C10]"
oConn.ConnectionString=strcon
oConn.Open
oRS.Open strsql,oConn,3,3
MsgBox "22",,"ssssss"
oRs.Fields(1).Value="a"
oRs.Fields(2).Value="b"
oRS.MoveNext
oRs.Fields(1).Value="c"
oRs.Fields(2).Value="d"
oRS.MoveNext
oRs.Fields(1).Value="e"
oRs.Fields(2).Value="f"
oRS.MoveNext
oRs.Fields(1).Value="g"
oRs.Fields(2).Value="h"
oRs.Update
oConn.Close
MsgBox "22",,"ssssss"
纯属巧合