Delphi中将DBGRID中的内容输出到WORD中-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

Delphi中将DBGRID中的内容输出到WORD中

简介:

这是我很久以前写的一篇文章,现在将它贴出来!

在使用DELPHI开发过程中发现网上有很多的开发朋友询问关于将DBGRID中的内容导出到一个WORD中的方法。想想可以帮帮大家,所以就自己写了一个。希望对大家的软件开发有帮助。
下面是源代码。其中我使用了RZ的控件,用DELPHI自带的DBGIRD也是可以的。
Function TBaseControl.DBGird2Word(DBGrid: TRzDBGrid): Boolean;
var
Count,I,J:Integer;
Doc:OleVariant;
CurrColumn,RecordNum:Integer;
wTable: Variant;
begin
try
Doc:=CreateOleObject('Word.Application');
Doc.Visible:=True;
Doc.Documents.Add;
except
Result:=false;
Exit;
end;
Count:=DBGrid.Columns.Count-1;
CurrColumn:=0;
for I:=0 to Count do
begin
if DBGrid.Columns.Items[I].Visible then
begin
Inc(CurrColumn);
end;
end;
RecordNum:=DBGrid.DataSource.DataSet.RecordCount+1;
wTable:=Doc.ActiveDocument.Tables.Add(Doc.ActiveDocument.Range(0, 0),RecordNum,CurrColumn);
wTable.Columns.AutoFit;
CurrColumn:=0;
for I:=0 to Count do
begin
if DBGrid.Columns.Items[I].Visible then
begin
wTable.Cell(1,CurrColumn+1).Range.InsertAfter(DBGrid.Columns.Items[I].Title.Caption);
Inc(CurrColumn);
end;
end;
J:=1;
DBGrid.DataSource.DataSet.First;
while not DBGrid.DataSource.DataSet.Eof do
begin
Inc(J);
CurrColumn:=0;
for I:=0 to Count do
begin
if DBGrid.Columns.Items[I].Visible then
begin
wTable.Cell(J,CurrColumn+1).Range.InsertAfter(DBGrid.Columns[I].Field.DisplayText);
Inc(CurrColumn);
end;
end;
DBGrid.DataSource.DataSet.Next;
end;
end;

本文转自狗窝博客51CTO博客,原文链接http://blog.51cto.com/fxh7622/15677如需转载请自行联系原作者


fxh7622

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: