标题:请教导出后的版面问题
只看楼主
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
已结贴  问题点数:20 回复次数:5 
请教导出后的版面问题
请教先生们,我用以下代码可将二维内存数据a(i,j)导出到"电子表"中,但导出在电子表中的形式是i*j行1列,我想要的结果是i行j列的形式,请教如何修改以下代码可满足要求,谢谢

dzb = "电子表.xls"
Open dzb For Output As #1
 For i = 1 To 行数
 For j = 1 To 列数
 Print #1, a(i, j)
 Next j
 Print ;
 Next i
搜索更多相关主题的帖子: 如何 电子表 
2016-03-31 12:15
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:7 
你的循环体不对,当然只有一列
程序代码:

 For i = 1 To 行数
   Dim  ss as string

 For j = 1 To 列数

 ss=ss & "," & a(i,j)

 Next j
  Print #1, ss

 Print ;

 Next i


上面的不对,因为你的不是txt,是xls。 当然你也可以用txt导入xls。
对xls不管是用什么分隔符它都是认为是一个字符串,只会放在第一列。
网上百度了以下,没有用print实现在excel中二维数据的填写的。暂时你还是得老实的调用Excel了


“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 11.0 object library”项。07以上好像是13

程序代码:
Dim xlapp As Excel.Application 'Excel对象
Dim xlbook As Excel.Workbook '工作簿
Dim xlsheet As Excel.Worksheet '工作表
    我们打算做的是:打开/新建一个excel,在其中对某工作表的一些单元格修改其值,然后另存为test.xls文件。
Private Sub Excel_Out_Click()
Dim i, j As Integer
Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlbook = xlapp.Workbooks.Add '新建EXCEL工件簿文件
xlapp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlsheet = xlbook.Worksheets(1) '设置活动工作表,当前工作簿的第一页,这里也可以换成“表名”
'下面就是简单的在一些单元格内写入数字
For i = 0 To 10 
   For j = 1 To 10 
     xlsheet.Cells(i, j) = a(i,j)   '当前工作簿第一页的第I行第J列
   Next j
Next i
xlsheet.SaveAs App.Path & "\test.xls"           '按指定文件名存盘
xlapp.Quit '结束EXCEL对象'xlapp.Workbooks.Close
Set xlapp = Nothing '释放xlApp对象


[此贴子已经被作者于2016-3-31 16:30编辑过]

2016-03-31 16:10
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
不好意思,没看清楚你的是xls,还以为是txt。
我还得看看怎么弄、
2016-03-31 16:17
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
得分:0 
回复 2楼 xiangyue0510
先生您好,这块代码运行下来可以将数据写入电子表并且是i行j列的形式,但最后保存时无法保存到指定的电子文件中,我分别试过相对路径和绝对路径,并且提示语指向的代码是这一行:xlsheet.SaveAs App.Path & "\b.xls"  
在文件夹中先建立b.xls 也不成功,请先生指点,谢谢
2016-04-01 06:49
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:7 
用csv文档吧
Dim a As String
dzb = "f:\电子表.csv"
Open dzb For Output As #1
 For i = 1 To 5
 a = ""
 For j = 1 To 6
 a = a & i & j & ","
 Next j
 Print #1, a
 Next i
 Close #1


[此贴子已经被作者于2016-4-1 10:21编辑过]


能编个毛线衣吗?
2016-04-01 10:14
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:7 
注意将下面代码的红色部分与你原来的代码进行比较:
dzb = "电子表.xls"
Open dzb For Output As #1
 For i = 1 To 行数
     For j = 1 To 列数
         Print #1, a(i, j); ,'这是有个分号和逗号
         DoEvents
     Next j
     Print #1,'这里看仔细哦
 Next i
Close #1'习惯性关闭打开的文件

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2016-04-03 11:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463123-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.569257 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved