十万火急--高分求教怎样在DELPHI数据库中调用EXCLE表? 我想调用两张EXCEL表,把它们放在同一个工作簿中,然后在ODBC中设置了指向它的EXCEL工作源,但在DELPHI中的table中却看不到这两张表,请问怎样调用它们。如果要把它们导入ACCESS中才能调用的话,那应该如何调用呢?我用的是officeXP. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请搜集一下论坛,调用excel的贴子很多 恩,用tf1book组件,可以读出excel 表的内容不过是excel4.0的,也可以用其他组件,但我没用过 keepconnection属性设置成true没有? 我有程序從excel到sql的倒入器,你有mail可與我聯系[email protected] pandarus(冷雨) :使用别人东西的时候,应该说一声. 还是我来给出原来的代码吧 。 我只希望真诚的帮助,不想看到沽名钓誉有哪儿不清楚,都可以来问,我们互相讨论,相互学习。 如果我能帮你,我会尽力---------------------------------------------------------------发件人: "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 PMTo: 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短信给我。也希望以后能够得到您的帮助:),先谢了:) wjlsmail(计算机质子):我只想用知己知道的幫助別人,難道這樣有錯嗎?.對,這個方法是你告訴我的.難道就因為這個我就不能再把這個方法告訴別人嗎?難道我每告訴一個人的時候還要先打個電話給你嗎?這是小問題,不是什么著作權.我今天一開csdn看到你的信息我感到很難過.我在網上的四棵星是靠我回答網友問題和幫助別人而得到的.這應該也是csdn開辦的宗旨,上個星期五有一個網友說要一個fast report.我用了多種方法傳給她(42748456),到后來她甚至以為我傳病毒給她,我說你別緊張.我是想幫你.因為在csdn上有很多人都是這樣熱心幫過我的.不好意思.話說多了.我沒什么別的意思.只是想說我通過你教我的方法去教別人我沒有想沽名釣誉.如果這樣一個小例子也侵犯了你什么的話.對不起!!! 有必要搞得这么复杂吗?用ADO操作excel就象操作普通的数据库一样,excel实质上就是一种数据库。你们有没有留意access、dbase、foxpro的odbc驱动用的是同一个.dll文件。 使用ADOConnection,选择jet驱动,在Extended Properties里填上Excel 8.0然后选择文件。把ADOConnection的connected设为true。最后把adotable的tabledirect设为true就OK了。 lzf1010(深宇):Thank you:) ,你的方法很简单,谢谢 wjlsmail(计算机质子): 對不起,兄弟.我不知道原來是這樣.真誠地希望你能重新快樂起來.象從前一樣.你知道,正是你的那股熱心勁使我也深受鼓舞.做起事來才耐心而負責. to:wjlsmail(计算机质子) 1.ADOTable.TableDirect 属性用来作什么 ?我想TableDirect就是专门用来处理excel之类数据文件的,是去掉$号的。2.用ADOQuery怎么链接? 我没有试验成和普通的数据库操作一样的,你只需知道表名和字段名。注意的是excel表格的第一行里的cell里的内容就是字段名。 pandarus(冷雨):谢谢,抱歉,海涵,宽恕...... 多线程 开启,停止的问题。 请问 ListView 可以上下移动记录吗? 如何判断pagecontrol当前的子page(tabsheet)? 几天来的小问题集合~~分帖发没解决的希望合起来发能够解决,UP有分。请帮忙 为什么登录可用分不增加? 定时程序一问,急,困惑我好久了! 一个小问题 用什么来截取字符串 关于DBE的一个东东,快帮忙!!! 如何在 form.onshow 之后自动自行一段代码? 如何在delphi中实现打印条码 有相关的控件么? dbgrid 怎么样做更新啊.
不过是excel4.0的,
也可以用其他组件,但我没用过
有哪儿不清楚,都可以来问,我们互相讨论,相互学习。 如果我能帮你,我会尽力
---------------------------------------------------------------发件人: "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短信给我。也希望以后能够得到您的帮助:),先谢了:)
對,這個方法是你告訴我的.難道就因為這個我就不能再把這個方法告訴別人嗎?
難道我每告訴一個人的時候還要先打個電話給你嗎?
這是小問題,不是什么著作權.
我今天一開csdn看到你的信息我感到很難過.我在網上的四棵星是靠我回答網友問題和幫助別人而得到的.這應該也是csdn開辦的宗旨,上個星期五有一個網友說要一個fast report.我用了多種方法傳給她(42748456),到后來她甚至以為我傳病毒給她,我說你別緊張.我是想幫你.因為在csdn上有很多人都是這樣熱心幫過我的.
不好意思.話說多了.我沒什么別的意思.只是想說我通過你教我的方法去教別人我沒有想沽名釣誉.如果這樣一個小例子也侵犯了你什么的話.對不起!!!
然后选择文件。把ADOConnection的connected设为true。最后把adotable的tabledirect设为true就OK了。
對不起,兄弟.我不知道原來是這樣.
真誠地希望你能重新快樂起來.象從前一樣.你知道,正是你的那股熱心勁使我也深受鼓舞.做起事來才耐心而負責.
1.ADOTable.TableDirect 属性用来作什么 ?
我想TableDirect就是专门用来处理excel之类数据文件的,是去掉$号的。
2.用ADOQuery怎么链接? 我没有试验成
和普通的数据库操作一样的,你只需知道表名和字段名。注意的是excel表格的第一行里的cell里的内容就是字段名。