2,498
社区成员
发帖
与我相关
我的任务
分享
ADODataSet1.Close; //导入
ADODataSet1.CommandText:='select * from tb';
ADODataSet1.Open;
ADODataSet1.DisableControls;
try
ADOQuery1.First;
while not (ADOQuery1.Eof) do
begin
ADODataSet1.Insert;
ADODataSet1.FieldByName('字段').AsString:=trim(ADOQuery1.fields[0].AsString);
ADODataSet1.FieldByName('字段').AsString:=trim(ADOQuery1.fields[1].AsString);
ADODataSet1.FieldByName('字段').AsString:=trim(ADOQuery1.fields[2].AsString);
ADODataSet1.FieldByName('字段').AsString:=trim(ADOQuery1.fields[3].AsString);
ADODataSet1.FieldByName('字段').AsString:=trim(ADOQuery1.fields[4].AsString);
ADODataSet1.FieldByName('字段').AsFloat:=ADOQuery1.fields[5].AsFloat;
ADOQuery1.Next;
end;
ADODataSet1.Post;
Application.MessageBox('數據導入已完成!', '提示', MB_ICONINFORMATION);
edit2.Text:='';
finally
ADODataSet1.EnableControls;
END;
ADODataSet1.Close;
end;
很麻烦,但是能实现导入的效果var
x:string;
begin
OpenDialog1.Execute;
edit2.Text:=opendialog1.FileName;
x:=COPY(edit2.Text,length(trim(edit2.Text))-3,4);//指定excel路径
if X='.xls' then
begin
with adoquery1 do
begin
Active:=false;
ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+edit2.Text+';Mode=Share Deny None;Extended Properties=Excel 8.0;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";';
ConnectionString:=ConnectionString+'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;';
ConnectionString:=ConnectionString+' OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don#39t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
Close;
SQL.Clear;
SQL.Add('select * from [Sheet1$]');
ExecSQL;
Open;
end;
end
while qExcel.Eof do
begin
qSQL.Append;
qSQL.FieldByName('字段').AsString := qExcel.FieldByName('字段').AsString;
.
.
.
qSQL.Post;
qExcel.Next;
end;