Foxtable(狐表)用户栏目专家坐堂 → excel或word输出多个文件


  共有1302人关注过本帖树形打印复制链接

主题:excel或word输出多个文件

帅哥哟,离线,有人找我吗?
txtxtttt1919
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:99 积分:1121 威望:0 精华:0 注册:2016/10/31 21:07:00
excel或word输出多个文件  发帖心情 Post By:2017/2/14 9:17:00 [只看该作者]

在excel或word输出功能中,不管选定多少行的数据,输出的电子档都是在一个文件中,有没有办法输出几个文件,每个文件包含一行或几行数据,这样就可以将电子版分别传给不同的人了。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/14 9:20:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
txtxtttt1919
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:99 积分:1121 威望:0 精华:0 注册:2016/10/31 21:07:00
  发帖心情 Post By:2017/2/15 20:27:00 [只看该作者]

For i As Integer = 1 To Tables("部门预算").BottomPosition
    Dim Book As New XLS.Book(ProjectPath & "Attachments\投资部门预算下达.xls")
    Dim fl As String = ProjectPath & "Reports\投资部门预算下达.xls"
    Book.Build() 
    Book.Save(fl) 
    Dim Proc As New Process 
    Proc.File = fl
    Proc.Start()   
    Book.Save("D:\test.xls")
    proc.Close()
    CurrentTable.position = CurrentTable.position + 1
Next

我想用循环的方法逐个生成报表,但有两个问题:1、若同时生成,excel不能打开同名模板文件。
2、若生成一个,另存一个,关闭后再打开第二个的话,找不到怎么把生成的文件另存在其他文件夹里。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/16 2:17:00 [只看该作者]

dim t as table = Tables("部门预算")
For i As Integer = t.TopPosition To t.BottomPosition
    Dim Book As New XLS.Book(ProjectPath & "Attachments\投资部门预算下达.xls")
    Dim fl As String = ProjectPath & "Reports\投资部门预算下达" & t.rows(i)("_Identify") & ".xls"
    Book.Build()
    Book.Save(fl)
    Dim Proc As New Process
    Proc.File = fl
    Proc.Start()  
Next

 回到顶部
帅哥哟,离线,有人找我吗?
txtxtttt1919
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:99 积分:1121 威望:0 精华:0 注册:2016/10/31 21:07:00
  发帖心情 Post By:2017/2/16 12:49:00 [只看该作者]

参照老师的代码,我将代码改成了:
Dim t As Table = Tables("部门预算")
For i As Integer = t.Topposition To t.bottomposition
    Dim Book As New XLS.Book(ProjectPath & "Attachments\投资部门预算下达.xls")
    Dim fl As String = ProjectPath & "Reports\投资部门预算下达" & t.Current("单位名称") & ".xls"
    Book.Build() 
    Book.Save(fl) 
    Dim Proc As New Process 
    Proc.File = fl
    Proc.Start()   
    CurrentTable.position = CurrentTable.position + 1
Next
还有一个小问题,循环次数是根据选定区域的行数来确定的,因此运行前我需要将准备生成excel文件的数据行都选定,造成了生成的第一个文件是根据所有选定行生成的,而不是选定行中的第一行数据生成。这个怎么解决?

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/16 12:52:00 [只看该作者]

For i As Integer = t.Topposition To t.bottomposition

 

改成

 

For i As Integer = 0 To t.Rows.Count - 1


 回到顶部