繁体   English   中英

将制表符分隔的文本文件转换为具有格式化格式的Excel文件

[英]Tab delimited text file to Excel file with text formatted

我是VB编程的新手,我想将文本文件转换为excel文件。文本文件用逗号分隔和Unicode文件。转换后的excel文件应具有文本格式的所有字段(以保留前缀Zeros)。使用下面的代码将文本文件转换为excel,Excel文件中的零将被截断。首先,我将逗号分隔的文本文件转换为制表符分隔的文件,并将制表符分隔的文本文件加载到excel中。

Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("SOURCE_FILE_PATH.txt", ForReading,False,-1)
strContents = objFile.ReadAll
objFile.Close
strContents = Replace(strContents, ",", vbTab)
Set objFile = objFSO.OpenTextFile("SOURCE_FILE_PATH.txt", ForWriting, True, -1)
objFile.Write strContents
objFile.Close
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open(Wscript.Arguments.Item(0))
objWorkbook.Saveas WScript.Arguments.Item(1),51
objWorkbook.Close False
Set objWorkbook = objExcel.Workbooks.Open("Target_XLSX_FILE_PATH.xlsx") 
objExcel.Visible = True
Set objRange = objExcel.Range("A:K")
objRange.NumberFormat = "@"--converting to text format
objExcel.Save 
objWorkbook.Close False
objexcel.Quit

在Set objWorkbook = objExcel.Workbooks.Open(Wscript.Arguments.Item(0))行中,将制表符分隔的文件加载到Genetal格式的各个列中。在将其也转换为文本格式之后,零也不会那里。 先谢谢您的帮助。

如果您在导入Excel之前不对文本文件中的数据做任何操作,则无需为此使用FSO

这是我的数据:

在此处输入图片说明

这是代码:

Sub TextOpen()
    arrtext = Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2))
    Workbooks.OpenText Filename:="C:\Users\jeromem\Desktop\BK201.txt", Comma:=True, FieldInfo:=arrtext
End Sub

这是运行后的结果:

在此处输入图片说明

检查对于OpenText方法和FieldInfo数据类型。 如您所见,文本格式等于2

arrtext基本上理解为: for column 1 of text, apply format 2; for column 2 of text, apply format 2.... for column 1 of text, apply format 2; for column 2 of text, apply format 2.... 然后,我们将此数组提供给FieldInfo 我们还设置了Comma:=True因为这是文本文件中的分隔符。

让我们知道是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM