请问delphi中导出excel是怎么做到的,我这边想把dbgrid中的数据导出到excel

 我来答
y52161
2014-03-14 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:111万
展开全部
我不是在你的另一个问题上回答你了么
先把这个采纳吧 然后贴你QQ出来
追问
qq私信你了!
众口说车
2014-03-14 · TA获得超过2323个赞
知道大有可为答主
回答量:3503
采纳率:50%
帮助的人:1493万
展开全部

方法1: 使用dbgridtoexcel 控件...

方法2:利用adoquery

以下转自网络:

unit ADOQuery2Xls;
interface
uses  SysUtils, Classes, DB, ADODB,ComObj,Variants;
type  TADOQuery2Xls = class(TADOQuery)  
private    { Private declarations }    
ExcelApp:Variant;    
MyWorkBook:Variant;    
FOnFinishExportXls:TNotifyEvent;    procedure 
CreateXlsObj;    procedure DestroyXlsObj;  
protected    { Protected declarations }
  public    { Public declarations 
}    constructor Create( AOwner: TComponent 
);override;    destructor Destroy;override;  
published    { Published declarations }    
property  onFinishExportXls:TNotifyEvent read FOnFinishExportXls write 
FOnFinishExportXls;    procedure 
ExportToXls(XlsFileName:string);  end;
procedure Register;
implementation
uses Math;
procedure Register;begin  RegisterComponents('ADO', 
[TADOQuery2Xls]);end;
procedure TADOQuery2Xls.ExportToXls(XlsFileName:string);var  
col,row:integer;begin   if XlsFileName='' then 
exit;   CreateXlsObj;   if not Active then 
Open;   DisableControls;   row:=1;   
for col:=1 to FieldCount do      
MyWorkBook.sheets[1].cells[row,col].value:=Fields[col-1].FieldName;
   inc(row);   First;   while not Eof 
do   begin      for col:=1 to 
FieldCount do          
MyWorkBook.sheets[1].cells[row,col].value:=Fields[col-1].Value;      
DBApplication.ProcessMessages;      
inc(row);      Next;   
end;   EnableControls;      
MyWorkBook.saveas(XlsFileName);   DestroyXlsObj;   
if Assigned(FOnFinishExportXls) then      
FOnFinishExportXls(self);end;procedure 
TADOQuery2Xls.CreateXlsObj;begin   
try      
ExcelApp:=CreateOleObject('Excel.application');      
MyWorkBook:=CreateOleObject('Excel.Sheet');   
except       raise exception.Create('Can not 
create Excel application,please make MS Excel is installed in your 
computer');   end;   
MyworkBook:=ExcelApp.workBooks.Add;end;procedure 
TADOQuery2Xls.DestroyXlsObj;begin    
MyWorkBook.close;    ExcelApp.Quit;    
ExcelApp:=Unassigned; //  release variantend;constructor 
TADOQuery2Xls.create(AOwner: TComponent);begin inherited Create( 
AOwner );end;destructor TADOQuery2Xls.Destroy;begin  
inherited destroy;end;end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-21
展开全部
多数是使用OLE的,OLE的比较容易但是速度较慢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-21
展开全部
用EHLIB控件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-21
展开全部
导出成csv再给excel不好吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式