2,507
社区成员




try
sFileName := OpenDialog1.FileName;
ADOConnection2.Connected := False; //注意这里 连接 EXCEL 的参数 //关键是这里
ADOConnection2.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=' + sFileName + ';Extended Properties="Excel 8.0;IMEX=1";Persist Security Info=False';
ADOConnection2.Connected := True;
//showmessage('连接execl成功');
sl := TStringList.Create;
ADOConnection2.GetTableNames(sl); // 记住 Excel 文件的 底部 必须是 sheet1 否则不能导入
sTableName := sl[0];
//showmessage(sTableName);
if Pos('$', sTableName) > 0 then sTableName := '[' + sTableName + ']';
ADOquery2.Close;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'SELECT * FROM ' + sTableName;
//showmessage(ADOquery2.SQL.Text);
ADOquery2.Open;
sl.Free;
ADOquery1.Close;
ADOquery1.Sql.Text := 'SELECT top 1 * FROM data2011 where 1=0'; //打开 空记录表....这里可以用 insert,不用append
//showmessage(ADOquery1.Sql.Text);
ADOquery1.Open; //根据自己习惯 做吧...
//该语句用来执行Query1中的SQL命令语句, 如果执行查询从数据库中获得查询结果,查询结果会在数据网格DBGrid1中显示出来。
if ADOquery2.RecordCount > 0 then
begin
ADOquery2.First;
for i := 1 to ADOquery2.RecordCount do //
begin
ADOquery1.Append;
ADOquery1.FieldValues['商户名']:=trim(ADOquery2.FieldValues['商户名']);
ADOquery1.FieldValues['分子公司']:=trim(ADOquery2.FieldValues['分子公司']);
ADOquery1.FieldValues['成功笔数(不含跨行)']:=trim(ADOquery2.FieldValues['成功笔数(不含跨行)']);
ADOquery1.FieldValues['成功金额(不含跨行)']:=trim(ADOquery2.FieldValues['成功金额(不含跨行)']);
ADOquery1.FieldValues['跨行发送银行笔数']:=trim(ADOquery2.FieldValues['跨行发送银行笔数']);
ADOquery1.FieldValues['跨行发送银行金额']:=trim(ADOquery2.FieldValues['跨行发送银行金额']);
ADOquery1.FieldValues['应收收入']:=trim(ADOquery2.FieldValues['应收收入']);
ADOquery1.Post;
ADOquery2.Next;
end;
end;
MessageBox(Handle,'导入完成!','完成!',MB_OK+MB_ICONINFORMATION);
except
MessageBox(Handle,'失败!','信息!',MB_OK+MB_ICONINFORMATION);
end;
end;