2,498
社区成员
发帖
与我相关
我的任务
分享
var
ASql, APath: String;
ExcelApp: Variant;
AInt: Integer;
begin
if messagebox(Self.Handle,'你确定要导入直送的数据吗?','系统提示',mb_yesno+mb_iconquestion)=idyes then
begin
If OpenDialog1.Execute Then
APath := OpenDialog1.FileName
Else
Exit;
If not FileExists(APath) Then
Begin
messagebox(self.Handle,'你选择的文件不存,请核对','提示信息',mb_iconinformation);
Exit;
End;
Try
Application.ProcessMessages;
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Workbooks.Open(APath);
ExcelApp.WorkSheets[1].Activate;
ASql := 'select * from hy_zs where 1=2';
ADOQuery1.Close;
ADOQuery1.SQL.Text := ASql;
ADOQuery1.Open;
For AInt := 2 To ExcelApp.ActiveSheet.UsedRange.rows.count Do //AInt 起始行数,重哪行开始导入,Aint初始值就是几
Begin
ADOQuery1.Append;
ADOQuery1.FieldByName('Invoice').AsString := ExcelApp.Cells[AInt, 1].Value; //Aint是第几行,后面的数字是第几列,
ADOQuery1.FieldByName('Zsdate').AsDateTime := ExcelApp.Cells[AInt, 2].Value;
ADOQuery1.Post;
End;
Finally
ExcelApp.WorkBooks.Close;
ExcelApp.quit;
messagebox(self.Handle,'直送数据导入成功,请核对','提示信息',MB_ICONINFORMATION);
End;
end;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Append('insert into User_qx select * from OPENROWSET(');//将这个‘表’字改为你的数据库中的表名
ADOQuery2.SQL.Append(quotedstr('MICROSOFT.JET.OLEDB.4.0'));
ADOQuery2.SQL.Append(','+quotedstr('Excel 8.0;HDR=YES;DATABASE='+OpenDialog1.FileName)+' ,sheet1$)');
ADOQuery2.ExecSQL;
ADOQuery2.Connection:=ADOConnection1;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Append('insert into User_qx select * from OPENROWSET(');//将这个‘表’字改为你的数据库中的表名
ADOQuery2.SQL.Append(quotedstr('MICROSOFT.JET.OLEDB.4.0'));
ADOQuery2.SQL.Append(','+quotedstr('Excel 8.0;HDR=YES;DATABASE='+OpenDialog1.FileName)+' ,sheet1$)');
ADOQuery2.ExecSQL;
showmessage('ok');
if OpenDialog1.Execute then
begin
ADOQuery2.Connection:=ADOConnection1;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Append('insert into User_qx select * from OPENROWSET(');//将这个‘表’字改为你的数据库中的表名
ADOQuery2.SQL.Append(quotedstr('MICROSOFT.JET.OLEDB.4.0'));
ADOQuery2.SQL.Append(','+quotedstr('Excel 8.0;HDR=YES;DATABASE='+OpenDialog1.FileName)+' ,sheet1$)');
ADOQuery2.ExecSQL;
showmessage('ok');
end;