我想调用两张EXCEL表,把它们放在同一个工作簿中,然后在ODBC中设置了指向它的EXCEL工作源,但在DELPHI中的table中却看不到这两张表,请问
怎样调用它们。如果要把它们导入ACCESS中才能调用的话,那应该如何调用呢?我用的是officeXP.

解决方案 »

  1.   

    请搜集一下论坛,调用excel的贴子很多
      

  2.   

    恩,用tf1book组件,可以读出excel 表的内容
    不过是excel4.0的,
    也可以用其他组件,但我没用过
      

  3.   

    keepconnection属性设置成true没有?
      

  4.   

    我有程序從excel到sql的倒入器,你有mail可與我聯系[email protected]
      

  5.   

    pandarus(冷雨) :使用别人东西的时候,应该说一声.
      

  6.   

    还是我来给出原来的代码吧 。 我只希望真诚的帮助,不想看到沽名钓誉
    有哪儿不清楚,都可以来问,我们互相讨论,相互学习。 如果我能帮你,我会尽力
    ---------------------------------------------------------------发件人: "Veni Xiong Jian Min (glcnMIS)" <[email protected]> | 拒绝地址 | 添加到地址簿 
     
    收件人: "'hogan wang'" <[email protected]
     
    主题: RE: thank you 
     
    日期: Thu, 14 Nov 2002 09:04:53 +0800 
     
             
     
    兄弟,早上好.  
    导入的程序根据你的做法已经成功了.谢谢你.我还有个问题.为什幺导进去的数据不会按序号排序.而是110.11..100.101..1000.1001.1002.....220.21.....200.201.202.203.....2000.2001.2002...2003..2004..... .
    .
    .
     
     
    -----Original Message-----
    From: hogan wang [mailto:[email protected]]
    Sent: Wednesday, November 13, 2002 5:39 PM
    To: Veni Xiong Jian Min (glcnMIS)
    Subject: you can try it
    简单写了一下,你可以参考一下自己写1 . 数据表 Person: xuhao     varchar 50   
     gonghao   varchar 50
     name       varchar 50 
     xueli        varchar 50 
     bumen     varchar 50 
     sex          varchar 50 
     Office       varchar 50 
     rcsj          varchar 50 
     birthday    varchar 50 
     jg             varchar 50 2.简要程序 var
      WorkBook : _WorkBook;
      WorkSheet : _WorkSheet;
      LCID : Integer;
      i, j : Integer;
      s1,s2,s3,s4,s5,s6,s7 ,s8,s9,s10: String;
      Is1,Is2,Is3,Is4,Is5,Is6,Is7,Is8,Is9,Is10 : Integer;
    begin
      sheetNum := 1;  
      Is1 := 1;
      Is2 := 5;
      Is3 := 6;
      Is4 := 7;
      Is5 := 8;
      Is6 := 9;
      Is7 := 10;
      Is8 := 11;
      Is9 := 12;
      Is10 := 14;  if OpenDialog1.Execute then
      begin
        WorkBook := ExcelApplication1.Workbooks.Add(OpenDialog1.FileName, LCID);
        for j := 1 to sheetnum do
        begin
          WorkSheet := WorkBook.Sheets[j] as _WorkSheet;
          for i := 2 to 1455 do  // here, you can changer the endcow num what you want
          begin
            s1 := Trim(WorkSheet.Cells.Item[i, is1]);
            s2 := Trim(WorkSheet.Cells.Item[i, is2]);
            s3 := Trim(WorkSheet.Cells.Item[i, is3]);
            s4 := Trim(WorkSheet.Cells.Item[i, is4]);
            s5 := Trim(WorkSheet.Cells.Item[i, is5]);
            s6 := Trim(WorkSheet.Cells.Item[i, is6]);
            s7 := Trim(WorkSheet.Cells.Item[i, is7]);
            s8 := Trim(WorkSheet.Cells.Item[i, is8]);
            s9 := Trim(WorkSheet.Cells.Item[i, is9]);
            s10 := Trim(WorkSheet.Cells.Item[i, is10]);
            try
              if ADOQuery1.Active then ADOQuery1.Close;
              ADOQuery1.Connection:=Adoconnection1;
              ADOQuery1.SQL.Text := 'INSERT INTO person VALUES (''' + s1 + ''''+','
                                +''''+s2+''''+','
                                +''''+s3+''''+','
                                +''''+s4+''''+','
                                +''''+s5+''''+','
                                +''''+s6+''''+','
                                +''''+s7+''''+','
                                +''''+s8+''''+','
                                +''''+s9+''''+','
                                +''''+s10+''''+')';
              ADOQuery1.ExecSQL;
            except
            end;
          end;
        end;
       如果有问题,你再来Email或者CSDN短信给我。也希望以后能够得到您的帮助:),先谢了:)
      

  7.   

    wjlsmail(计算机质子):我只想用知己知道的幫助別人,難道這樣有錯嗎?.
    對,這個方法是你告訴我的.難道就因為這個我就不能再把這個方法告訴別人嗎?
    難道我每告訴一個人的時候還要先打個電話給你嗎?
    這是小問題,不是什么著作權.
    我今天一開csdn看到你的信息我感到很難過.我在網上的四棵星是靠我回答網友問題和幫助別人而得到的.這應該也是csdn開辦的宗旨,上個星期五有一個網友說要一個fast report.我用了多種方法傳給她(42748456),到后來她甚至以為我傳病毒給她,我說你別緊張.我是想幫你.因為在csdn上有很多人都是這樣熱心幫過我的.
    不好意思.話說多了.我沒什么別的意思.只是想說我通過你教我的方法去教別人我沒有想沽名釣誉.如果這樣一個小例子也侵犯了你什么的話.對不起!!!
      

  8.   

    有必要搞得这么复杂吗?用ADO操作excel就象操作普通的数据库一样,excel实质上就是一种数据库。你们有没有留意access、dbase、foxpro的odbc驱动用的是同一个.dll文件。
      

  9.   

    使用ADOConnection,选择jet驱动,在Extended Properties里填上Excel 8.0
    然后选择文件。把ADOConnection的connected设为true。最后把adotable的tabledirect设为true就OK了。
      

  10.   

    lzf1010(深宇):Thank you:) ,你的方法很简单,谢谢
      

  11.   

    wjlsmail(计算机质子):
      對不起,兄弟.我不知道原來是這樣.
    真誠地希望你能重新快樂起來.象從前一樣.你知道,正是你的那股熱心勁使我也深受鼓舞.做起事來才耐心而負責.
      

  12.   

    to:wjlsmail(计算机质子) 
    1.ADOTable.TableDirect 属性用来作什么 ?
    我想TableDirect就是专门用来处理excel之类数据文件的,是去掉$号的。
    2.用ADOQuery怎么链接? 我没有试验成
    和普通的数据库操作一样的,你只需知道表名和字段名。注意的是excel表格的第一行里的cell里的内容就是字段名。
      

  13.   

    pandarus(冷雨):谢谢,抱歉,海涵,宽恕......