当前位置: 代码迷 >> Delphi >> delphi 7操作EXCEL有关问题
  详细解决方案

delphi 7操作EXCEL有关问题

热度:10003   发布时间:2013-02-25 00:00:00.0
delphi 7操作EXCEL问题?
我想在窗口中打开一个EXCEL在把原先编辑好的EXCEL模版导入,然后在模版相应的位置填写数据。提交保存到数据库中。请问该怎么做?

------解决方案--------------------------------------------------------
[code=Delphi(Pascal)][/code]
procedure TfrmModal.LoadFromExcel;
var
Opendlg: TOpenDialog;
sFile,sConnectString,sSQL : string ;
tempProvider: TProvider; //uses Provider
begin
Opendlg.Filter := 'Excel files (*.xls)|*.xls|All files (*.*)|*.*';
if Opendlg.Execute then
begin
sFile := Opendlg.FileName ;
qryExcel.Close;
sConnectString := 'Provider=Microsoft.Jet.OLEDB.4.0;';
sConnectString := sConnectString + 'Data Source= ' + sFile + ';';
sConnectString := sConnectString + 'Extended Properties=excel 8.0;';
sConnectString := sConnectString + 'Persist Security Info=False';
qryExcel.ConnectionString := sConnectString;
end;
if Trim(Opendlg.FileName) = '' then Exit;
try
with qryExcel do
begin
Close ;
SQL.Clear;
sSQL := ' select * from [Sheet1$]';
SQL.Add(sSQL);
Prepared;
Open; //将Excel数据(空模版)读取到qryExcel里去
except
Application.MessageBox('...','...',MB_OK+MB_ICONERROR);
end;
//将qryExcel里的数据放入ClientDataSet1里去,显示在表格DBGrid1里,可以手动添加数据
tempProvider := TProvider.Create(nil);
tempProvider.DataSet := qryExcel;
ClientDataSet1.Close;
ClientDataSet1.Data := tempProvider.Data;
end;
//然后再用一个AdoQuery控件连接到数据库,把ClientDataSet1里添加的数据存入数据库
  相关解决方案