发新话题
打印

[高级] 输出数据到Excel示例代码-南客

re

附件: 您所在的用户组无法下载或查看附件

TOP

今天继续出货

附件: 您所在的用户组无法下载或查看附件

TOP

同上
附件: 您所在的用户组无法下载或查看附件

TOP

引用:
闲人 于 2004-3-21 12:01 PM 写道:
在老师的公式里作了一些改动,已经能显示"亇股体检数据"了,真是太高兴了,谢谢老师!不过问题是历史数添加的问题还是介决不了,万望老师能给予帮助,谢谢老师!
最好是使用数据库,用Excel表格,能保存的数据不多。
如果一定要用Excel表格,则应该带有年的信息,把公式代码稍作修改即可。

TOP

南客老师,您好!

南客老师,您好!
      今天终于盼来了老师的回复,真是太兴奋了!
      老师建议使用数据库,我也真想用,苦于自已才疏学浅,始终建不起Access数据库,目前只能先用Excel了。我试过将Excel的第一行的日期全改成带年份的格式例如(2003-1-2),再将老师公式里3个带有"2004"字样的改成"2003",但是不成功,我实在不知再要改动何处。敬请老师给予再次帮助。
    衷心感谢老师!!!

TOP

参考如下:
复制内容到剪贴板
代码:
input:n(0,0,1);
fc:0,linethick0;
fy:=year; fm:=month; fd:=day;
gpdm:=stklabel;
<%
gpdm=ffl.vardata("gpdm")
vc=ffl.vardata("fc")
vy=ffl.vardata("fy")
vm=ffl.vardata("fm")
vd=ffl.vardata("fd")
n=ffl.vardata("n")
last=ubound(vc)
  Dim Conn, Rs, Driver, DBPath
  if n=0 then
    TableName="各股主力仓位"
  else
    TableName="各股体验数据"
  end if
  On Error Resume Next
  Set Conn = CreateObject("ADODB.Connection")
  Driver = "Driver={Microsoft Excel Driver (*.xls)};"
  DBPath = "DBQ=E:\FoxTrader_V3\各股体检数据.xls"  
  Conn.Open Driver & "ReadOnly=0;" & DBPath
  Set Rs = CreateObject("ADODB.Recordset")
  SQL=("SELECT * FROM [" & TableName & "$] where 名称 Like '%" & gpdm & "%'")  '只返回当前股票的数据
  Rs.Open SQL, Conn, 3, 2
  if Err.Number <> 0 or Rs.Recordcount=0 then
     'msgbox "数据不存在"
  else
    j=1
    for i=0 to last
         vdate1=DateSerial(vy(i),vm(i),vd(i))
         vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
        while vdate1>vdate2
          j=j+1
          vdate2=Cdate("2004-" & mid(rs(j).name,strp1,len(rs(j).name)-strp2))
          if j>rs.fields.count-1 then Exit for
        wend
        if vdate1=vdate2 then
          vc(i)=Rs(j).Value
          j=j+1
          if j>rs.fields.count-1 then Exit for
        end if
    next
  end if
ffl.vardata("fc")=vc
%>
STICKLINE(fc>0,0,fc,5,1),colorred;
STICKLINE(fc<0,0,fc,5,1),colorgreen;
附:公式所用的表格数据,请下载。公式中表格的路径请自行修改
附件: 您所在的用户组无法下载或查看附件

TOP

再次感谢南客老师

万分感谢南客老师又为我化费了精力和时间重新写了公式!唉!怪我没有说清楚,2004年的数据都能显示。见图。关键问题是怎样修改公式才能将2004年以前的数据在副图中显示出来。我实在不好意思再一再二地麻烦老师,只恳请老师在有可能的情况下帮我介决这一难题。再次表示衷心的感谢!
附件: 您所在的用户组无法下载或查看附件

TOP

修正后的公式,应该可以显示任意一年的数据吧?
但Excel表格要按我上传的格式。

[ 本贴由 南客 于 2004-4-2 12:31 最后编辑 ]

TOP

[2004-2/19  [2004-2/20 [2004-2/23 [2004-2/24 [2004-2/25 [2004-2/26       

[2004-2-19  [2004-2-20 [2004-2-23 [2004-2-24 [2004-2-25 [2004-2-26       

请教南客老师上面二种日期格式用同一公式均能读取吗? 格式不同有什么具体意义吗?

TOP

引用:
闲人 于 2004-4-2 07:05 PM 写道:
[2004-2/19  [2004-2/20 [2004-2/23 [2004-2/24 [2004-2/25 [2004-2/26       

[2004-2-19  [2004-2-20 [2004-2-23 [2004-2-24 [2004-2-25 [2004-2-26       

请教南客老师上面二种日期格式用同一公式均能读取吗? 格式不 ...
写成以下几种形式,都可以:


[2003-2-19
(2000-2-19
(2001-2/19
(2002/2/19
A2004-2-19
B1995-2-19

第一个字符不是数字,后面时间日期的间隔用“-”或"/"都行

TOP

谢谢南客老师的指点!我马上就去修改.

TOP

向南客老师汇报

按老师指点将日期全部改成 [2003-12/30 这样的格式,结果不能显示任何图形。于是我将新公式的路径修改到老的Excel里也不能显示,我再将老公式的路径修改到新的Excel里也还是不能显示。我芒然了,不知所措了,又不好意思再开口麻烦老师了。不过老师不厌其烦为大家服务的精神还真让我心服。再次衷心谢谢老师!

TOP

“路径、Excel文件名、表名”这三处,都要进行相应修改。

先试试我上传的数据,应该可以显示吧?

TOP

只要理解图示解说,稍加修改,应该可以显示
图中,我修改了上传文件中的部分日期,显示的是000001深发展的情况:
附件: 您所在的用户组无法下载或查看附件

TOP

调整参数,公式显示“个股体验”的数据(楼上的图,显示仓位数据):
附件: 您所在的用户组无法下载或查看附件

TOP

实在不行的话,可以把你的数据压缩一下,发到我的信箱,我针对你的数据情况,修改公式代码。

TOP

我己按老师指点用了老师上传的表格确实能显示,我赶紧将路径修改到我新的表中,果然也能显示了。但不尽如人意,各个股票所显示的天数各有不同。我的数据暂设为[2003-6-2---2004-4-2,显示最多的是上证指数从[2003-6-2----2003-12-12日,2004年的一天都没有,其他股票多少不等,且相差很大。我又奈何不得了。我只能厚厚脸皮将数据发到老师的邮箱里去了。请老师告诉我邮箱地址好吗?

TOP

是:buy@fjfox.com 吗?

TOP

发到这吧:

nanke@fjfox.com

TOP

引用:
huazizo2003 于 2004-4-3 17:58 写道:
有点复杂!你说呢?
请朋友赐教高招

TOP

数据原表式已发

南客老师:数据表格已发至邮箱.

TOP

OK

看到了,你的数据中,表头有点问题,转换时没转全,查了好一阵才发现。
现在可以了。

公式基本上不变,改了表名、Excel文件名等。
有错的文件,我把修正后的发还给你。邮件中包含了公式文件,你导入后修改文件路径就可以用了。

TOP

十二万分感谢南客老师

南客老师﹕您好!
      收到您的公式和改好的数据表,既激动又紧张,心里默默念叨着"这下可好了"赶紧操作,果不其然成功了!!!太谢谢了!太谢谢了!

TOP

紧急求助

南客老师:昨晚引入老师发来的新公式后一切很正常,今早集合竞价也正常,等到正式开盘就出现了"执行VBS出现错误",正常行情也不能接收,不知为何?我把路径修改后的公式式一源码贴上请老师给予帮助.谢谢!
这是"个股体检数据"公式.            注: "主力仓位"正常!
复制内容到剪贴板
代码:
input:n(0,0,1);
fc:0;
fy:=year; fm:=month; fd:=day;
gpdm:=stklabel;
<%
gpdm=ffl.vardata("gpdm")
vc=ffl.vardata("fc")
vy=ffl.vardata("fy")
vm=ffl.vardata("fm")
vd=ffl.vardata("fd")
n=ffl.vardata("n")
last=ubound(vc)
  Dim Conn, Rs, Driver, DBPath
  if n=0 then
    TableName="Sheet1"
  else
    TableName="各股体验数据"
  end if
  'On Error Resume Next
  Set Conn = CreateObject("ADODB.Connection")
  Driver = "Driver={Microsoft Excel Driver (*.xls)};"
  DBPath = "DBQ=f:\FoxTrader_V3\各股体验数据.xls"  
  Conn.Open Driver & "ReadOnly=0;" & DBPath
  Set Rs = CreateObject("ADODB.Recordset")
  SQL=("SELECT * FROM [Sheet1$] where 名称 Like '%" & gpdm & "%'")
  Rs.Open SQL, Conn, 3, 2
  if Err.Number <> 0 or Rs.Recordcount=0 then
     'msgbox "数据不存在"
  else
    j=1
    for i=0 to last
         vdate1=DateSerial(vy(i),vm(i),vd(i))
         vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
        while vdate1>vdate2
          j=j+1
          vdate2=Cdate(mid(rs(j).name,2,len(rs(j).name)-1))
          if j>rs.fields.count-1 then Exit for
        wend
        if vdate1=vdate2 then
          vc(i)=Rs(j).Value
          j=j+1
          if j>rs.fields.count-1 then Exit for
        end if
    next
  end if
ffl.vardata("fc")=vc
%>
STICKLINE(fc>0,0,fc,5,1),colorred;
STICKLINE(fc<0,0,fc,5,1),colorgreen;

TOP

发新话题
报警岗亭