各位大虾:
    请问如何用delphi调用excel中的排序功能?如sql server 语句中的order by ……相似的功能。
    还有,能不能在sql server 中写一个存储过程,而其查询语句作为一个参数在delphi中传给它。
    如:select * from table1 where ……。where 后面是前端传给它的参数,也就是将条件作为一个参数传给存储过程。

解决方案 »

  1.   

    excel 排序不是很清楚,不过可以试一下 Select 语句的 Order by ,应该是可以支持的。
    create procedure ExecCondition 
    ( @vchCondition varchar(4000)) as
    declare @vchExec as varchar(8000)
    set nocount on
    select @vchExec = 'select * from table1 where " + isnull(@vchCondition, '')
    exec (@vchExec)再到 Delphi 中调用。
      

  2.   

    错了一个符号:
    select @vchExec = 'select * from table1 where " + isnull(@vchCondition, '')  改成
    select @vchExec = 'select * from table1 where ' + isnull(@vchCondition, '')
      

  3.   

    可以直接把excel表当作一个adotable或adoquery打开,排序自然也就不成问题了
      

  4.   

    各位可能误会我的意思啦。我是把excel现有的数据用delphi写程序对其进行排序。excel有排序的功能,所有应该也能写程序来控制它的。
      

  5.   

    先谢谢以上个为大虾啦。
    有没有人能回答excel中排序的问题啊?
    急啊……
      

  6.   

    两种方式:
    1.全部用ado,打开时加order by ,再写入新文件,删除原文件
    2.用ole对象,excel的application,cmd
      

  7.   

    to befree(似有似无)
    第二种方法有没有什么例子看一下?
    我是将数据放到excel里,老是说我查出来的数据用sql server 的order by……
    是排不了序的。因为我是用union将数据和在一起的(至少我不知怎样排序)。
    我用ole对象,将数据放到excel中,然后我想对姓名那一列进行排序。到我不知excel有什么可以调用的。
      

  8.   

    其实也很简单:
    跟sql server里的表是一样的:0001  小明     男
    0002  小红     女
    0003  小华     男
    0004  委军     男
    0005  晴晴     女以上的数据是我已经导到excel表里的(我写了程序用delphi的ado将sql server的表里的数据导过去的)。
    我想按姓名那一列排列。
    要在delphi中来控制的。
    我定义了ole对象。已经可以控制这张表的啦。就是我不知怎样写这些语句。
      

  9.   

    在 Delphi 中使用 Excel For ODBC 的驱动程序连接 Excel 文件,然后使用 SQL 语句打开工作表 Sheet1,