欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

VBS实现将Excel表格保存为txt文本

程序员文章站 2022-07-04 20:35:06
希望能够找到个能给excel表另存为txt的vbs代码,虽然另存为可以选择,但还是需要直接vbs执行这一步另存为txt格式的,应该如何写代码呢? 有装excel的话,就会比...
希望能够找到个能给excel表另存为txt的vbs代码,虽然另存为可以选择,但还是需要直接vbs执行这一步另存为txt格式的,应该如何写代码呢?

有装excel的话,就会比较简单,下面的是通用的不装office也可以运行的,如下:
vbscript code:
复制代码 代码如下:

set oshell = createobject("shell.application")
set odir = oshell.browseforfolder(0,"选择目录",0)
for each x in odir.items
if lcase(right(x.path,4)) = ".xls" then
xls2txt x.path
end if
next
'****************************************************************************************
'开始转换
'****************************************************************************************
sub xls2txt(strfilename)
'若有装excel只需
'oexcel.activeworkbook.saveas strfilename & ".txt", -4158
'下面的方法适合没有装office的系统
on error resume next
dim oconn,oadox,orecordset
set oconn = createobject("adodb.connection")
set oadox = createobject("adox.catalog")
sconn = "provider = microsoft.jet.oledb.4.0;" & _
"data source = " & strfilename & ";" & _
"extended properties = ""excel 8.0; hdr=no"";"
ssql = "select * from "
oconn.open sconn
if err then
msgbox "错误代码:" & err.number & vbcrlf & err.description
err.clear
else
oadox.activeconnection = oconn
ssql = ssql & "[" & oadox.tables(0).name & "]" '为了简便,只处理第一个工作表
set orecordset = oconn.execute(ssql)
if err then
msgbox "错误代码:" & err.number & vbcrlf & err.description
err.clear
else
write strfilename & ".txt",orecordset.getstring
end if
end if
orecordset.close
oconn.close
set orecordset = nothing
set oadox = nothing
set oconn = nothing
end sub
'****************************************************************************************
'写入文件,同名覆盖,无则创建
'****************************************************************************************
sub write(strname,str)
dim ofso,ofile
set ofso = createobject("scripting.filesystemobject")
set ofile = ofso.opentextfile(strname,2,true) '不存在则创建,强制覆盖
ofile.write str
ofile.close
set ofile = nothing
set ofso = nothing
end sub