以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  excel或word输出多个文件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96139)

--  作者:txtxtttt1919
--  发布时间:2017/2/14 9:17:00
--  excel或word输出多个文件
在excel或word输出功能中,不管选定多少行的数据,输出的电子档都是在一个文件中,有没有办法输出几个文件,每个文件包含一行或几行数据,这样就可以将电子版分别传给不同的人了。
--  作者:有点色
--  发布时间:2017/2/14 9:20:00
--  

用代码来生成,写成循环即可

 

http://www.foxtable.com/webhelp/scr/1145.htm

 

http://www.foxtable.com/webhelp/scr/2890.htm

 


--  作者:txtxtttt1919
--  发布时间: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、若生成一个,另存一个,关闭后再打开第二个的话,找不到怎么把生成的文件另存在其他文件夹里。

--  作者:有点色
--  发布时间: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
--  发布时间: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文件的数据行都选定,造成了生成的第一个文件是根据所有选定行生成的,而不是选定行中的第一行数据生成。这个怎么解决?

--  作者:有点色
--  发布时间: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