请教如何逐行读取文本文件中每行以“tab”分割的数据,并写入制定的excel?

pyromania_z 2009-11-19 04:18:34
小弟我有这样的一个文本文档,其中数据大致如下:
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了,请各位大侠不吝赐教~
...全文
1756 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZenRoi 2010-06-21
  • 打赏
  • 举报
回复

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
fzx4936 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cbirdno1no1 的回复:]
方法一:拷贝-粘贴
方法二:改文本文件的扩展名为xls
[/Quote]
方法二:改文本文件的扩展名为xls
这个是最简单的办法了 因为excel可以直接读出以vbtab也就是chr(9)分隔并以chr(10)结束的字符串。
但是要注意 如果 其中某个字段里是很大的数值 就会有很大的问题了 所以在产生数据时要在数值的开头或结尾加个字符 试其变成文本
hfCoder 2010-06-12
  • 打赏
  • 举报
回复
不懂,帮顶
hongxuebiao 2010-06-12
  • 打赏
  • 举报
回复
相同的效果用C++如何实现?请教高人指点
Tiger_Zhao 2009-11-25
  • 打赏
  • 举报
回复
直接用 Excel 自己的导入功能
Sub Macro1()
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
yanfengim 2009-11-25
  • 打赏
  • 举报
回复
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
of123 2009-11-20
  • 打赏
  • 举报
回复

Tab 分隔的数据行,不必处理,可以直接添加到 Excel。
cBirdNO1NO1 2009-11-20
  • 打赏
  • 举报
回复
方法一:拷贝-粘贴
方法二:改文本文件的扩展名为xls
linc_M 2009-11-20
  • 打赏
  • 举报
回复
支持楼上。
慢慢历遍吧。
嗷嗷叫的老马 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liguicd 的回复:]
split函数
[/Quote]
支持.

先以vbcrlf为分隔符,分开各行.

然后再以vbtab为分隔符,分开各个列.
无·法 2009-11-19
  • 打赏
  • 举报
回复
所有tab字符换成逗号,然后后缀名改为csv,然后就ok了
liguicd 2009-11-19
  • 打赏
  • 举报
回复
split函数
  • 打赏
  • 举报
回复
要达到目的,生产的时候生产csv就简单了。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧