以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]输出EXCEL报表能根据不同的模板进行合并吗?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=51287)

--  作者:aalons
--  发布时间:2014/5/23 12:19:00
--  [求助]输出EXCEL报表能根据不同的模板进行合并吗?
如题,能不能根据不同的模板将不同表格的数据进行合并输出一个报表。且不同的模板在合并输出的报表上能随意更换显示的顺序,如表A对应EXCEL模板A,表B对应EXCEL模板B,合并输出报表C,报表C内含模板A和模板B的内容。模板A、B的内容显示的顺序可以改变.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip




见附件。

--  作者:aalons
--  发布时间:2014/5/23 13:23:00
--  
我坐等



有没有表格ADD方法的 ,一个个模板生成后分页ADD进去?

--  作者:有点甜
--  发布时间:2014/5/23 14:20:00
--  

 不能做到。你只能用vba的方式拷贝excel表格的内容进去。

 

http://www.foxtable.com/help/topics/2121.htm

 


--  作者:有点甜
--  发布时间:2014/5/23 14:22:00
--  

 比如这样,意思是把sheet2的全部拷贝到sheet1的后面去,自己参考着改吧。

 

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("e:\\test.xls")  
    Dim Ws1 As MSExcel.WorkSheet = Wb.WorkSheets("sheet1")
    Dim Ws2 As MSExcel.WorkSheet = Wb.WorkSheets("sheet2") \'指定要复制的工作表
    Dim Rg As MSExcel.Range = Ws2.UsedRange

    Rg.copy(ws1.cells(ws1.UsedRange.Rows.count+10, 1))

    Wb.Save
catch ex As exception
    msgbox(ex.message)  
finally
    App.Quit
End try


--  作者:aalons
--  发布时间:2014/5/23 16:31:00
--  
唉,那用WORD模版实现这个功能是不是要简单些啊?


--  作者:有点甜
--  发布时间:2014/5/23 16:40:00
--  
以下是引用aalons在2014-5-23 16:31:00的发言:
唉,那用WORD模版实现这个功能是不是要简单些啊?

 

用word模板同样不能实现。都是需要把生成好的两个excel复制到合并到一个excel表格里面去的。


--  作者:aalons
--  发布时间:2014/5/23 16:46:00
--  
刚才想了下,EXCEL报表的话,如果两个表格项目和格式完全不同,复制到一起也没有意义,都错位了,所以最好用WORD模版?
word模版不能显示以表格的形式显示数据吗?????
如:
  标题1   标题2   标题3  标题4   标题5  
   1   内容   内容   内容   内容
   2   内容   内容   内容   内容
   3   内容   内容   内容   内容


--  作者:有点甜
--  发布时间:2014/5/23 16:53:00
--  

回复7楼,word模板也是不能合并两个报表的内容的,只能套打主表和关联表。


--  作者:aalons
--  发布时间:2014/5/23 17:08:00
--  
用VBA复制不行啊?


--  作者:有点甜
--  发布时间:2014/5/23 17:12:00
--  
以下是引用aalons在2014-5-23 17:08:00的发言:
用VBA复制不行啊?

 

也可以用vba赋值内容进去,不过用vba复制word内容比复制excel内容麻烦一些。

 

操作word的代码,看这里

 

Dim app As New MSWord.Application
try
    Dim fileName = "d:\\ts.doc"
    app.Documents.Open(fileName)
    Dim count = app.Documents(fileName).Characters.Count
    Dim rng As MSWord.Range = app.Documents(fileName).Range(Start:=0, End:=count)

    msgbox(rng.Text)
    \'rng.Select()   \'全选
    \'rng.Copy()   \'拷贝
catch ex As exception
    msgbox(ex.message)
finally
    app.Quit
End try

 

参考 http://msdn.microsoft.com/zh-cn/library/tcyt0y1f%28v=vs.80%29.aspx