以文本方式查看主题

-  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=129204)

--  作者:蓝蚂蚁
--  发布时间:2018/12/24 9:29:00
--  如何批量导出excel报表
A表有如下结构:
配送公司     产品名称    规格  单位 .. ... ..
A公司         ......          .....   ....
A公司         ......          .....   ....
B公司         ......          .....   ....
B公司         ......          .....   ....
C公司         ......          .....   ....
excel模板已设计好,名称分别是A公司报表、B公司报表、C公司报表,现在想把A表数据中配送公司是A公司的行导出到A公司报表,B公司的导出到B公司报表,C公司导出到C公司报表。思路是在窗口中做一个按钮,只要点击这个按钮就能一下导出这3个报表,不知道按钮代码如何编写?

--  作者:有点甜
--  发布时间:2018/12/24 10:03:00
--  
Dim cs() As String = {"A", "B", "C"}
For Each c As String In cs
    Dim Book As New XLS.Book(ProjectPath & "Attachments\\出库单.xls")
    Dim fl As String = ProjectPath & "Reports\\出库单" & c & ".xls"
    Tables("表A").filter = "第一列=\'" & c & "\'"
    Book.Build() \'生成细节区
    Book.Save(fl) \'保存工作簿
    Dim Proc As New Process \'打开工作簿
    Proc.File = fl
    Proc.Start()
Next

--  作者:蓝蚂蚁
--  发布时间:2018/12/24 15:07:00
--  
老师您好  按照你的代码进行操作,其结果是:得到了3个报表,名称分别是:出库单A,出库单B、出库单C,但这3个报表的内容都一样的,是不是【Tables("表A").filter = "第一列=\'" & c & "\'"】不起作用?
--  作者:有点甜
--  发布时间:2018/12/24 15:09:00
--  

你excel模板的条件那里,设置条件为 <All>

 

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

 


--  作者:蓝蚂蚁
--  发布时间:2018/12/24 16:47:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:刀头.zip


模板里面已经有<ALL>的,我上传了附件,烦老师帮修改一下,谢谢。

--  作者:蓝蚂蚁
--  发布时间:2018/12/24 16:52:00
--  
Reports下面3个报表中,其内容都是一样的,这不符合要求。按要求应该是导出的报表中,其“出库单A公司”这个报表里面只有A公司的数据,其他的同理。
[此贴子已经被作者于2018/12/24 16:53:24编辑过]

--  作者:有点甜
--  发布时间:2018/12/24 16:54:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:刀头.rar


 


--  作者:蓝蚂蚁
--  发布时间:2018/12/24 16:58:00
--  
大神啊,谢谢
--  作者:蓝蚂蚁
--  发布时间:2019/3/17 11:26:00
--  

呼叫版主:

 


图片点击可在新窗口打开查看此主题相关图片如下:图像 3.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:图像 4.jpg
图片点击可在新窗口打开查看

如何删除按照模板导出报表的第一行,如上图

模板中第一行的<end>,经过实践不能放到第二行,如果放到第二行导出的结果达不到要求。


--  作者:有点蓝
--  发布时间:2019/3/18 9:17:00
--  
我测试没有问题

<end>放到第二行,然后删除第一行