以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求从外部数据源中导出数据到excel的最快方法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=7180)

--  作者:唐尸三摆手
--  发布时间:2010/5/22 19:38:00
--  求从外部数据源中导出数据到excel的最快方法

目的:从数据源erp中使用sql语句提取数据然后直接导出到固定的目录,格式为excel格式。

 

原方法:

 

Dim q_a As new QueryBuilder
q_a.TableName = "cw"
q_a.C
q_a.SelectString = "select a.deptcode as \'部门编码\',d.name as \'部门名称\',round(sum(b.finishnum*c.inventoryprice/a.plannum*(a.plannum-a.finishnum)),2) as \'车间物料\' from aeg00000 a,agb00000 b,baa00000 c,zad00000 d where a.centercode=\'0100\' and a.finishnum<a.plannum and a.planid=b.planid and b.finishnum>0 and c.warehousecode like \'01%\' and b.itemcode=c.itemcode and a.deptcode=d.code group by a.deptcode,d.name order by a.deptcode"
q_a.Build
Dim ex as New Exporter
ex.SourceTableName = "cw" \'指定导出表为车间物料
ex.FilePath = "D:\\Data\\chejian\\" & format(Date.now,"yyyy年MM月dd日HH时mm分") & "车间物料" & ".xls" \'指定目标文件
ex.Format = "Excel" \'导出格式为Excel
ex.Export() \'开始导出

 

但是这种方法会生成一个table表cw,如果不希望生成cw表就从后台直接导出为EXCEL表,有没有其他更好的方法?



--  作者:czy
--  发布时间:2010/5/22 20:12:00
--  

不生成Table估计速度也不会有大的改变。

 

如果不想看到cw表,那么你应该再加一行代码。

如:

 

……

q_a.TableVisible = False

q_a.Build

……


--  作者:唐尸三摆手
--  发布时间:2010/5/23 7:49:00
--  

版主,还有个问题,用现在的方法,我设置了计划管理,每隔1小时导出数据,但是会生成不同的文件,能否直接将数据追加到一个EXCEL中,也就是说导出目录下只有一个文件

 

然后每天的数据都顺序向后追加,如下:

部门编码 部门名称 占用资金 跟踪时间
0101 一车间 307057.52 2010-4-1 8:30
0102 二车间 577011.08 2010-4-1 8:30
0103 三车间 175141.17 2010-4-1 8:30
0112 四车间 212685.66 2010-4-1 8:30
0113 五车间 269359.16 2010-4-1 8:30
0122 六车间 90899.17 2010-4-1 8:30
0101 一车间 296392 2010-4-2 10:30
0102 二车间 582028.34 2010-4-2 10:30
0103 三车间 236202.22 2010-4-2 10:30
0112 四车间 93955.12 2010-4-2 10:30
0113 五车间 147175.57 2010-4-2 10:30
0122 六车间 95178.21 2010-4-2 10:30


--  作者:狐狸爸爸
--  发布时间:2010/5/23 10:49:00
--  
参考开发篇的Excel报表编程部分,自己编写代码,将新数据追加到现有的Excel文件。
--  作者:唐尸三摆手
--  发布时间:2010/5/23 10:56:00
--  
好的