回 帖 发 新 帖 刷新版面

主题:请教关于delphi调用excle的问题

我做了一个小程序,用的是access数据库,用来查询人员的相关资料,然后在listview中显示出来,有时候我需要把这些数据打印出来,听说delphi自带的打印功能不怎么强,而且比较难以调整,(我刚学的delphi,也不会这个打印),所以我想能不能直接把查询出来的数据用excle打开,用excel的强大功能调整打印,不知道有没有大侠帮我这个忙?
  我也上网查了些资料,不过那些方法写的我看了半天看不懂,(很打击我的信心。。。) ,也没说用到listviw组件,不知道有哪位大哥帮帮我,谢谢了,我这几天为这事都快崩溃了。。。
  我的QQ:28232546

回复列表 (共2个回复)

沙发

我有C++调用EXCEL的源码,可就是没有delphi的,不过delphi的QReport也不错哦

板凳


导出是如下 

use中加入 ExtCtrls
Visible是一个boolean的变量
ad1是dataset 或adoquery


var
  sJbh:string;
  SaveDialog:TSaveDialog;
begin
  //打开Excel
  if not OpenExcel(Visible) then
    exit;

 
  try
  
   

  //写列标题
  Sheet:= WorkBook.Sheets[1];
  DataSetToExcelTitle(ad1,1);
 
  Row1:=Row;
  Col1:=Col;
    //写数据
  with ad1 do
  begin
    First;
    Filtered:=false;
    while not eof do
    begin
      sJbh:=fieldByName('jbh').AsString;
      Sheet:= WorkBook.Sheets[1];
      Row:=Row1;
      Col:=Col1;
      DataSetToExcelData(ad1,1);
      Row1:=Row;
      Col1:=Col;
    end;
  end;    
  Screen.Cursor:=OldCursor;
    //以下是保存
  //if Not Visible then
  //begin
    ePath.Text:=trim(ePath.Text);
    if ePath.Text<>'' then
      WorkBook.SaveAs(FileName:=ePath.Text)
    else
    begin
      SaveDialog:=TSaveDialog.Create(Nil);
      SaveDialog.Filter := 'Microsoft Excel|*.xls';
      Result:=SaveDialog.Execute;
      UpdateWindow(GetActiveWindow);
      //if Result then
        WorkBook.SaveAs(FileName:=SaveDialog.FileName);
      SaveDialog.Free;
    end;
    Excel.Quit;
  //end;
  end;
  finally
    free;
  end;

 
end;

我来回复

您尚未登录,请登录后再回复。点此登录或注册