已经作了好几天了。因为 才从学校出来,delphi学的不是很深,故请各位大虾帮帮忙!!!!
扣谢!~~~~~~~~~~~~!!!!
扣谢!~~~~~~~~~~~~!!!!
解决方案 »
- 用UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil)下载软件的问题!
- 流文件
- 有没有APIHOOK开发包?
- ☆☆☆☆☆故事接龙☆☆☆☆☆(等着你进来一起玩.保证好耍!!!)
- 安装完后,为什么组件标签页上只有standand页?
- QuickReport能否实现每页金额合计,如何实现?
- 求一个简单加密问题
- 怎么取得ShellListView里已选中的文件名及路径
- 如何在delphi程序中实现多语种?中文版,日文版,英文版?
- 画图
- 那位大虾能说说 控件的xp外观 的原理。用什么方法能最小资源的实现xp控件的效果在delphi下..
- 下载 大富翁论坛离线数据库 编程好助手 大家都来下载呀
这就能打开两个sheet,然后再导入SQL就行了。
非常感谢!~~
但是我还是不清楚怎么实现,我是用ado组件通过odbc连接的excel文件,再导入到数据库(sqlserver)中的。
你给我的链接上面只有代码,我想知道具体是怎么实现的。
能不能帮个忙呢!?
再次谢谢你给我的帮助!~~~~
select = 'select 股票代码 as code, 股票名称 as namee from [%s] order by 股票代码';
select1 = 'select 股票代码, 股票名称 from [%s]';
procedure TfrmMain.BitBtn1Click(Sender: TObject);
begin
if Self.OpenDialog1.Execute then
begin
Self.edt1.Text := Self.OpenDialog1.FileName;
Self.ADOConnection1.Close;
Self.ADOConnection1.ConnectionString := Format(connstr, [OpenDialog1.FileName]);
Self.ADOConnection1.Open;
Self.ADOConnection1.GetTableNames(Tables);
TableName := Tables[Tables.Count-1];
Self.ADODataSet1.CommandText := Format(select, [TableName]);
Self.ADODataSet1.Open;
end;
end;
Tables: TStrings;
TableName: string;
还要有:Tables := TStringList.Create;
to hanlin2004
你的代码好像不行。
分别用两个ADOConnection,一个通过odbc连接excel,也就是创建一个数据源。
第2个连接需要导入数据的数据库,并建立好相对应的表。再分别用两个DataSource,adoquery,dbgrid。连接好久OK拉
代码:
adoquery1.Append;
adoquery1.First;
while not adoquery1.Eof do
begin
adoquery2.Append;
adoquery2.fieldbyname('').AsString:=adoquery1.FieldByName('').AsString;
adoquery2.FieldByName('').AsString:=adoquery1.fieldbyname(').AsString;
adoquery2.FieldByName('').AsString:=adoquery1.fieldbyname('').AsString;
adoquery2.FieldByName('').AsString:=adoquery1.fieldbyname('').AsString;
adoquery2.FieldByName('').AsString:=adoquery1.fieldbyname('').AsString;
adoquery2.FieldByName('').AsString:=adoquery1.fieldbyname('').AsString;
adoquery2.FieldByName('').AsString:=adoquery1.fieldbyname('').AsString;
adoquery2.FieldByName('').AsString:=adoquery1.fieldbyname('').AsString;
adoquery2.FieldByName(').AsString:=adoquery1.fieldbyname('').AsString;
adoquery2.post;
adoquery1.Next;
end;
这样做之能够导入一张,但是导入多张怎么写呢,请大虾帮忙解决下。
const connstr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Extended Properties=Excel 8.0;Persist Security Info=False';
我这个写法就是可以动态的根据文件名来更换连接字符串,打开不同的文件,是用Jet.OleDB的驱动设置ADO连接字符串,方便。用ODBC的话太麻烦了吧,你要每次操作不同的文件都配置ODBC数据源,ADO采用OLE驱动就不必了
to hanlin2004
刚开始的时候我也用过jet引擎