delphi 调用excel,修改excel并显示

来源:互联网 发布:restful接口开发数据库 编辑:程序博客网 时间:2024/05/18 01:26
 目的:将查询结果输出到excel,并打开excel

function TFrmDBCZ_Report_DLBBFK.ProcessExcel(date: string): Boolean;
var
  xlapp,MySheet,MyBooks:Variant;
  i,j:Integer;
  filename,savefile :
string;
begin
  filename :
= ExtractFilePath(Application.ExeName)+'报表模版分矿转供电量明细表.xls';
  savefile :
= ExtractFilePath(Application.ExeName)+'报表'+copy(date,1,4)+''+copy(date,6,2)+'月分矿转供电量明细表.xls';
  if FileExists(savefile) then
  begin
    
if not DeleteFile(savefile) then
    begin
      ShowMessage(
'文件'+savefile+'可能被占用,请关闭文件重试');
      Result :
= False;
      Exit;
    end;
  end;
  xlapp:
= CreateOleObject('Excel.Application');
  xlapp.Workbooks.Open(filename);
  MyBooks :
= xlapp.workbooks[1];
  MySheet :
= xlapp.Workbooks[1].WorkSheets['电量报表(分矿)'] ;
  qry1.Close;
  qry1.Parameters.ParamByName(
'lb').Value := '汇总';
  qry1.Open;
  j :
=4;
  
for j := 4 to 12 do
  begin
    
for i := 5 to 13 do
    begin
      MySheet.Cells[j,i] :
= qry1.Fields[i+1].AsInteger;
    end;
    qry1.Next;
  end;
  mybooks.saved :
= True;//如果要关闭某个已更改的工作簿,但又不想保存它或者不想出现保存提示
  mybooks.saveas(savefile);
  MyBooks.close;
  xlapp.quit;
  xlapp:
= CreateOleObject('Excel.Application');
  xlapp.Workbooks.Open(savefile);
  xlapp.visible :
= True;
  
//OleContainer1.CreateObjectFromFile(savefile,false);
  
//OleContainer1.DoVerb(0);

  Result :
= True;
end;
原创粉丝点击