请教如何逐行读取文本文件中每行以“tab”分割的数据,并写入制定的excel?
小弟我有这样的一个文本文档,其中数据大致如下:2010.8 -30 TS4 ON -1 -31 -31.0565
2010.8 -30 TS4 ON -10 -40 -40.5189
2010.8 -30 TS4 ON -20 -50 -50.2598
2010.8 -30 ALL ON -1 -31 -30.9433
2010.8 -30 ALL ON -10 -40 -41.0027
2010.8 -30 ALL ON -20 -50 -49.9594
每一行中的每一列数据都是以tab分隔的。
我想实现的内容是:读取第一行文本数据,进行分割,写入excel表格。依次读取第二行,分割,写入....直至结束。
其实就是按照原有格式,把txt数据转成excel了,请各位大侠不吝赐教~ --------------------编程问答-------------------- 要达到目的,生产的时候生产csv就简单了。 --------------------编程问答-------------------- split函数 --------------------编程问答-------------------- 所有tab字符换成逗号,然后后缀名改为csv,然后就ok了 --------------------编程问答--------------------
支持.
先以vbcrlf为分隔符,分开各行.
然后再以vbtab为分隔符,分开各个列. --------------------编程问答--------------------
Tab 分隔的数据行,不必处理,可以直接添加到 Excel。 --------------------编程问答-------------------- 支持楼上。
慢慢历遍吧。 --------------------编程问答-------------------- 方法一:拷贝-粘贴
方法二:改文本文件的扩展名为xls --------------------编程问答-------------------- Open TmpPath For Binary As #filenum
fileContents = Space(LOF(filenum))
Get #filenum, , fileContents
Close filenum
fileInfo = Split(fileContents, vbCrLf)
For j = 0 To UBound(fileInfo)
str = Split(fileContents, vbTab)
For i = 0 To UBound(str)
Sheet1.cells(j+1,i+1) = str(i)
NEXT i
Next j
Close #filenum --------------------编程问答-------------------- 直接用 Excel 自己的导入功能
Sub Macro1()--------------------编程问答-------------------- 相同的效果用C++如何实现?请教高人指点 --------------------编程问答-------------------- 不懂,帮顶 --------------------编程问答--------------------
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Temp\1.txt", _
Destination:=Range("A1"))
.Name = "1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 936
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
方法二:改文本文件的扩展名为xls
这个是最简单的办法了 因为excel可以直接读出以vbtab也就是chr(9)分隔并以chr(10)结束的字符串。
但是要注意 如果 其中某个字段里是很大的数值 就会有很大的问题了 所以在产生数据时要在数值的开头或结尾加个字符 试其变成文本
--------------------编程问答--------------------
Sub InptDt()
Dim Arr, Ary, k%, i%
Open Application.GetOpenFilename("文本文件,*.txt", , "请选择:", , False) For Input As #1
Arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf): Reset
ReDim Ary(0 To UBound(Arr), 0 To 6)
For k = 0 To UBound(Arr)
For i = 0 To 6
Ary(k, i) = Split(Arr(k), vbTab)(i)
Next
Next
[A1].Resize(k, 7) = Ary
End Sub
补充:VB , VBA