vb 写入txt文件格式要求

vb写入txt文件格式要求:1、数据可以直接复制到excel的单元格内(比如数据之间有制表符)2、数据列和列之间对齐,列和列之间的数据间隔最小,不能太大。比如如下格式:2... vb写入txt文件格式要求:1、数据可以直接复制到excel的单元格内(比如数据之间有制表符)2、数据列和列之间对齐,列和列之间的数据间隔最小,不能太大。
比如如下格式:
2005-1-7 994.76 997.32 979.81 983.95
2005-1-14 983.76 1006.46 979.78 988.3
数据之间用tab分隔的话,间隔又太大,且数据不能直接复制到excel的单元格内
展开
 我来答
peglsjy
2012-07-22
知道答主
回答量:5
采纳率:0%
帮助的人:7819
展开全部
画两个Command按钮,一个打开你的文本文件,一个为转换为EXCEL的文件,画一个文本框指定路径。注意,引用部件里面勾选相应的EXCEL版本。

Private Sub Command1_Click()
CommonDialog1.DialogTitle = "打开数据文件"
CommonDialog1.Filter = "*.dat|*.dat|(所有文件)*.*|*.*"
CommonDialog1.FilterIndex = 0
CommonDialog1.Action = 1
Text1.Text = CommonDialog1.FileName
End Sub

Private Sub Command2_Click() '打开EXCEL过程
If Text1.Text = " " Then
msg = MsgBox("请选择数据文件", 64, "提示")
Exit Sub
End If
If Dir("D:\excel.bz") = "" Then '判断EXCEL是否打开
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.Visible = True '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open("D:\数据.xls") '打开EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
xlsheet.Activate '激活工作表
Open Text1.Text For Input As #1
Do While Not EOF(1) ' 循环至文件尾。
strz = strz & Input(1, #1)
Loop
Close #1 ' 关闭文件。
m = 1
n = 1
For i = 1 To Len(strz) + 1
tem = Mid(strz, i, 1)
If tem <> " " And tem <> Chr(10) And tem <> Chr(13) And tem <> "" Then
mystr = mystr & tem
Else
xlsheet.Cells(m, n) = mystr
' 写入Excl 的M行N列
n = n + 1
Do While Mid(strz, i + 1, 1) = " "
i = i + 1
Loop
If tem = Chr(10) Then
m = m + 1
n = 1
Do While Mid(strz, i + 1, 1) = Chr(10)
i = i + 1
Loop
End If
mystr = ""
End If
Next i
End If
xlBook.Close (True) '关闭EXCEL工作簿
xlApp.Quit '关闭EXCEL
Set xlApp = Nothing '释放EXCEL对象
End Sub
追问
在vb里一直没用过excel,有空了好好研究下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syx54
2012-07-23 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2733万
展开全部
采用CSV格式文件,每行一条记录,同一条记录的不同字段之间用逗号分隔,Excel可以直接打开.

请问:
为了在文本文件里做到,列对齐
你的数据最多是几个字符?
追问
除了日期格式的数据外,数据最多10个字符
追答
其实,你如果不要求列对齐的话,只要用逗号分隔,这样Excel可以直接读取,现在列对齐
简单的方法:
每个数据都采用10位字符宽度,不足10位的右面用空格填满,这样读取的时候,去掉空格就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woshiashui23
2012-07-22
知道答主
回答量:8
采纳率:0%
帮助的人:3.8万
展开全部
用Format固定字符宽度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
信心安J
2012-07-22 · TA获得超过402个赞
知道小有建树答主
回答量:787
采纳率:0%
帮助的人:720万
展开全部
改成这样看看Excel能读取不?

Print #1, "2005-1-7" & vbTab & "994.76" & vbTab & _
"997.32" & vbTab & "979.81" & vbTab & "983.95"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式