delphi 操作excel的问题

Description of your first forum.

delphi 操作excel的问题

帖子jeep00544 » 星期四, 2010年1月14日 10:59


现正在做一个通过Access查询导出到Excel的程序,不知道如何使用excel控件,还请高手解决!
 
 
 

delphi 操作excel的问题

帖子2843223 » 星期四, 2010年1月14日 14:05


用adoquery 读出数据 然后 使用vba 把数据导出到 excel中即可。。。
 
 
 

delphi 操作excel的问题

帖子lht123 » 星期四, 2010年1月14日 14:14


我有现成的单元 类 直接调用 告诉我邮箱
 
 
 

delphi 操作excel的问题

帖子tandxu » 星期四, 2010年1月14日 16:25


frxXLSExport
XLSReadWrite
 
 
 

delphi 操作excel的问题

帖子liuls » 星期四, 2010年1月14日 21:21


如果格式没有特别要求的话,可以把 Excel 作为数据库来用。那就相当于从一个数据库导到另一个数据库了
 
 
 

delphi 操作excel的问题

帖子jeep00544 » 星期五, 2010年1月15日 18:10


To: lht123,
邮箱是[email protected]
先谢了,我已经写出了一个自动保存的,但是还不完善,希望能够给个参考!
 
 
 

delphi 操作excel的问题

帖子jfzjm » 星期二, 2010年1月19日 10:38


全部使用ADO的方式操作方便,就成了表对表了,ADO操作EXCEL的文档到处都 是
 
 
 

delphi 操作excel的问题

帖子reegon » 星期三, 2010年1月20日 13:20


这个不需要用控件,直接用程序来写入EXECL
 
 
 

delphi 操作excel的问题

帖子love_yb97 » 星期三, 2010年1月27日 21:09


procedure TFrmQuery.DBGrid1CellClick(Column: TColumn);
begin
//EXP.DExport;
end;

procedure TFrmQuery.Button3Click(Sender: TObject);
begin
end;

//导出数据
procedure TFrmQuery.ExportDATA(Query:TADOQuery);
var
ExcelApp:TExcelApplication;
ExcelWKBook:TExcelWorkbook;
ExcelWKSheet:TExcelWorksheet;
I,J,K:integer;
begin
 if Query.IsEmpty then
  begin
   MessageDLG(#13+'无任何数据源可供导出!数据导出操作将中止!',MtError,[MbOk],0);
   Exit;
  end;

TRY
ExcelApp:= TExcelApplication.Create(Application);//创建Excel应用
ExcelWKBook:= TExcelWorkbook.Create(Application); //创建Excel工作薄
ExcelWKSheet:= TExcelWorksheet.Create(Application); //创建Excel工作表
ExcelApp.Connect;
ExcelApp.Visible[0]:=false;
Application.BringToFront; //程序前置
EXCEPT
MessageDlg('Excel没有安装或创建Excel时出现问题!',mtERROR,[mbYes],0);
abort;
END;
ExcelApp.Workbooks.Add(EmptyParam,0);
ExcelWKBook.ConnectTo(ExcelApp.Workbooks[1]);
ExcelWKSheet.ConnectTo(ExcelWKBook.Worksheets[1] as _WorkSheet);
TRY
begin
if SaveDialog1.Execute then
lab.Caption:='正在导出数据,请稍侯......';
with Query do
begin
         for i:=0 to FieldCount-1 do
         begin
         ExcelWksheet.Cells.Item[1,i+1]:=Fields[i].DisplayLabel;
         end;
         First;
         for i := 0 to recordcount - 1 do
           begin
              k:=1;
               for j:=0 to FieldCount-1 do
                 begin
                   if Fields[j].Visible then
                     begin
                         ExcelWksheet.Cells.Item[i+2,k]:=fields[j].AsString;
                         inc(k);
                     end;
                 end;
                 probar.Percent:=Trunc(I /(recordcount-1)*100);
                 lab.Caption:='正在导出数据,请稍侯......';
                 frmquery.Repaint;
                 next;
            end;
end;
ExcelWksheet.SaveAs(SaveDialog1.FileName);
END;
Finally
ExcelWkbook.Save;
ExcelApp.Disconnect;
ExcelWksheet.Free;
ExcelWkbook.Close;
ExcelWkbook.Free;
ExcelApp.Quit;
ExcelApp.Free;
end;
showmessage('已将表格中的数据成功导出!');

end;