永发信息网

delphi Excel与数据库连接

答案:2  悬赏:70  手机版
解决时间 2021-02-26 02:52
数据库中有一表,有两字段,一个是name 另一个是id,我想实现这样一个功能,就是在Excel中输入表中的一个id,输完后id就会变成name,不知道我这样说各位是否明白,因为报表中输入名字太慢了,想偷懒,想用DELPHI实现,请教各位大侠
回答帮我解决问题了,献上200分!谢谢!
最佳答案
用adoquery呀
给你一个例子。
//用ADO控制excel



procedure TForm1.BitBtn1Click(Sender: TObject);
Var
sFileName, sTableName : String;
sl : TStringList;
begin
If Not OpenDialog1.Execute Then Exit;
sFileName := OpenDialog1.FileName;
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=' + sFileName + ';Extended

Properties=Excel 8.0;Persist Security Info=True';
ADOConnection1.Connected := True;
//
sl := TStringList.Create;
ADOConnection1.GetTableNames(sl); //sl是表名列表(Excel中可能有很多个sheet)
//Excel表中可能有很多个sheet,可以循环,本程序只处理了第一个sheet(sl[0])
//for i := 0 to sl.Count-1 Do
//begin
// sTableName := sl[i];
//end;
sTableName := sl[0];
If Pos('$', sTableName)>0 Then sTableName := '[' + sTableName + ']';
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'SELECt * FROM ' + sTableName + ‘where id =’+ 你自己输入的值比如说edit1.text;
ADOQuery1.Open;
sl.Free;
end;
最后再while not adoquery1.eof do进行读取
全部回答
begin //在此加上代码; msexcel:=createoleobject( 'excel.application '); msexcel.workbooks.add; msexcel.visible:=false; with dataset do begin //转出表头 for i:=0 to fieldcount-1 do begin msexcel.cells[1,i+1].value:=fields[i].fieldname; end; //转出内容 j:=2;//表头为1,内容为第二行 while not eof do begin for i:=0 to fieldcount-1 do begin msexcel.cells[j,i+1].numberformat:= '@ '; msexcel.cells[j,i+1].value:=fields[i].asstring; end; inc(j); next; end; end;//end of dataset; msexcel.activeworkbook.saveas(filename); msexcel.activeworkbook.saved:=true; msexcel.quit; 加上一个, uses comobj; var msexcel:variant; 这种方式速度有点慢,推荐你用dxdbgrid这个控件,它有一个方法,可以实现,速度快
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
苹果 怎么手写查联系人
人类社会经历了哪些历史阶段
下列情形中,买受人可以取得合同解除权的有(
微店运费怎么不能修改
vb在保存工程的时候出现路径、文件访问错误&#
燕子尖在哪里啊,我有事要去这个地方
北京现代汽车是不是终身免费洗车
用蜡和凡士林怎么洗掉纹眉
湖南师范大学湖南文化创意产业研究院分研究中
【无人机飞控系统】属于无人机飞控子系统的是
兰州旧大路历史,如何变成三段的
文登区汪疃镇镇政管理所地址有知道的么?有点
请问?在麦当劳工作好不好!!!有没有前途!
水淹地在什么地方啊,我要过去处理事情
4(x +1)-3(X-1)=2X+3怎么解
推荐资讯
木兰花朝鲜饭店地址在什么地方,想过去办事
手工烫金机和电脑烫金机的区别
求 GTA5下载地址
西安市长安区新文化培训中心我想知道这个在什
【豪的拼音】豪有几个读音
四平到长白山怎么避开盘山道
纸包鱼有什么配菜
聪明岛儿童益智乐园地址在什么地方,想过去办
哥哥蛋糕(红庙路店)地址在什么地方,想过去办
生产乙烯的原料是什么生产乙烯的原料是什么
哲学家?
山西忻州方言 说”我喜欢你“ ” 我爱你“怎
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?