
利用VBS将Excel表格另存为txt文件
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本教程介绍如何使用VBS脚本批量将Excel表格另存为TXT格式文件,适用于需要转换大量数据文件的情况。
在IT行业中,有时需要自动化处理数据,比如将Excel表格转换为其他格式如文本段落件(txt)。本例探讨如何使用Visual Basic Script (VBS) 来实现这一功能,即使没有安装Microsoft Office也能执行。
需求是寻找一个VBS脚本能直接将Excel文件(.xls)转换成文本段落件(.txt),而不是通过手动操作“另存为”。以下的VBS代码可以满足这个需求:
```vbscript
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)
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
Set 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
```
这段代码的工作原理如下:
1. 使用`Shell.Application`对象打开文件选择对话框,让用户选取包含Excel文件的文件夹。
2. 遍历选定的文件夹中的所有文件,并检查它们是否为.xls格式。
3. 对于每个找到的Excel文件,调用`XLS2TXT`子程序进行转换操作。
4. `XLS2TXT`使用ADO组件连接到Excel文件并读取数据,然后将这些数据转换成文本形式。
5. 使用`Write`子程序将生成的文本写入新的.txt文件中。如果目标文件已存在,则会被覆盖。
此脚本利用Jet OLEDB提供程序来访问Excel文件,在没有安装Office的情况下只要安装了Jet数据库引擎也能够运行。需要注意的是,该代码仅处理每个Excel文档中的第一个工作表,并且假设所有数据都在表格的首行之上(HDR=No)。如果有多个工作表或需要处理带有列标题的数据,则需对脚本进行适当的修改。
在实际应用中,根据具体需求可能还需要对此脚本做一些调整。例如增加错误处理机制、添加日志记录功能或者支持更多复杂的工作表结构等操作。同时,在运行此脚本前备份原始数据也是很重要的步骤,以防意外丢失重要信息。
全部评论 (0)


