Foxtable(狐表)用户栏目专家坐堂 → 导出数据生成EXCEL的问题


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

主题:导出数据生成EXCEL的问题

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


加好友 发短信
等级:婴狐 帖子:57 积分:562 威望:0 精华:0 注册:2011/9/4 14:58:00
导出数据生成EXCEL的问题  发帖心情 Post By:2011/10/14 11:26:00 [只看该作者]

有两个有关联的表:客户管理和联系人,我想将客户管理表中的“客户名称”和联系人表中的“联系人”“手机号”导出为一个EXCEL文件。如果要写代码,请问代码怎么写???
[此贴子已经被作者于2011-10-14 11:28:26编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/10/14 11:50:00 [只看该作者]

代码新建查询表,只有这两列,然后导出这个查询表,具体参看帮助文件这一段:

 

 

组合多个查询结果

有的时候,我们会有将多个查询结果组合在一起的需求。

组合同一数据源的查询结果

SQLJoinTableBuilder有一个Union方法,可以组合多个其他SQLJoinTableBuilder的查询结果。

语法:

Union(Builder, All)

Builder:被组合的另一个SQLJoinTableBuilder
All:  可选参数,组合的时候默认是排除重复值的,如果需要组合所有数据,请将此参数设置为True

参与组合的多个SQLJoinTableBuilder,其生成的查询表必须具备相同的结构。

示例

假设你有订单2009、订单2010、订单2011三个表,需要从这三个订单表中找出所有客户为“红阳事业”的订单:

Dim jb1 As New SQLJoinTableBuilder("查询表1","订单2009")
jb1.C
jb1.AddTable("订单","产品ID","产品","产品ID")
jb1.AddTable("订单", "客户ID","客户","客户ID")
jb1.AddCols("产品名称","客户名称","日期", "数量","单价")
jb1.AddExp("金额","数量 * 单价")
jb1.Filter = "客户名称 = '红阳事业'" 

Dim jb2 As New SQLJoinTableBuilder("查询表1","订单2010")
jb2.C
jb2.AddTable("订单","产品ID","产品","产品ID")
jb2.AddTable("订单", "客户ID","客户","客户ID")
jb2.AddCols("产品名称","客户名称","日期", "数量","单价")
jb2.AddExp("金额","数量 * 单价")
jb2.Filter = "客户名称 = '红阳事业'"

Dim jb3 As New SQLJoinTableBuilder("查询表1","订单2011")
jb3.C
jb3.AddTable("订单","产品ID","产品","产品ID")
jb3.AddTable("订单", "客户ID","客户","客户ID")
jb3.AddCols("产品名称","客户名称","日期", "数量","单价")
jb3.AddExp("金额","数量 * 单价")
jb3.Filter = "客户名称 = '红阳事业'"

jb1.Union(jb2) '组合jb2
jb1.Union(jb3) '组合jb3
jb1.Build()

MainTable = Tables("查询表1")

 

[此贴子已经被作者于2011-10-14 11:55:57编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/14 12:06:00 [只看该作者]


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


加好友 发短信
等级:婴狐 帖子:57 积分:562 威望:0 精华:0 注册:2011/9/4 14:58:00
  发帖心情 Post By:2011/10/14 16:58:00 [只看该作者]

狐爸,我在帮助里看不明白。如果是在同一个表里面导出某个字段的数据,我都会了。我要的是在两个不同的表中导出数据到一个excel表格中,这个表excel表中的字段是“客户名称”、“联系人”、“电话”。【“客户名称”字段在狐表的客户管理表中,“联系人”、“电话”字段在狐表的联系人表中。】,不知道明不明白我的意思呢?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/14 17:05:00 [只看该作者]

明白了,那就生成查询表,再导出。

建议你合成一个表,否则真麻烦。

 

用Select 语句生成查询表,看看这里头的union运算符:

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

 

 

 

 

 


 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/10/14 17:12:00 [只看该作者]

我有一个办法,不用生成查询表,只要你在电脑中新建一个EXCEL空表,然后就可以将狐表中的两个表的两列数据全部加到这个空表中去.

假定新建一个空表是表12

 

Dim Book As New XLS.Book("c:\Data\表12.xls") '打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For ia As Integer = 0 To Tables("表A").Rows.Count-1
    Sheet(ia,1).Value = Tables("表A")(ia,0)
Next

For i As Integer = 0 To Tables("表B").Rows.Count-1
    Sheet(i,2).Value = Tables("表B")(i,0)
Next

Book.Build() '生成细节区
Book.Save("c:\Data\表12.xls") '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = "c:\Data\表12.xls"
Proc.Start()

[此贴子已经被作者于2011-10-14 17:20:01编辑过]

 回到顶部