|
工作中遇到一个软件开发项目,该项目要求将相关数据报表存为word格式文档(涉及表格、图形的输出),便于用户修改。 数据挖掘工具
本人在开发过程中,发现此类资料较少,且介绍相对简单,大多只是文本数据的的简单输出。现将个人摸索出的一些方法及心得体会告诉大家,以求共同探讨,共同提高!
form上放置以下控件:一个Tadoquery组件,名称为ADOQuery1;
一个TWordFont组件,名称为WordFont1; 数据挖掘研究院
一个TWordApplication组件,名称为WordApplication1; 数据挖掘研究院
一个TWordDocument1组件,名称为Doc; 数据挖掘工具
一个TWordParagraphFormat组件,名称为ParaFmt; 数据挖掘研究院
一个TIMAGE组件,名称为IMAGE1; 数据挖掘工具
一个TBUTTON组件,名称为Button1; 数据挖掘交友
procedure TFrm_TravilRDXL.EnterText;//自定义函数 数据挖掘交友
var 数据挖掘实验室
S: Selection; 数据挖掘工具
MyFormat : Word; 数据挖掘实验室
// Bitmap : TBitMap; 数据挖掘交友
AData :cardinal;
APalette : hpalette;
数据挖掘工具
begin
S := WordApplication1.Selection; 数据挖掘论坛
WordFont1.ConnectTo(S.Font); 数据挖掘交友
数据挖掘工具
S.TypeText("甘肃省兰州市旅游管理局热点线路统计表");
//加回车键,形成第一个段落:Doc.Paragraphs.Item(1) 数据挖掘论坛
S.TypeParagraph; 数据挖掘交友
数据挖掘研究院
//输入文字 数据挖掘实验室
S.TypeText(txt_DateFrom.Text+"至"+txt_DateTo.text); 数据挖掘论坛
//加回车键,形成第二个段落:Doc.Paragraphs.Item(2) 数据挖掘论坛
S.TypeParagraph; 数据挖掘交友
数据挖掘论坛
S.TypeText("使用部门:"+"销售部"+#13); 数据挖掘交友
S.TypeText("时间范围:"+"2002-8-8至2002-8-28"+#13 );
S.TypeText("线路类型:"+"团体线"+#13); 数据挖掘论坛
s.TypeText("线路等级:"+"豪华线"+#13); 数据挖掘研究院
//加回车键,形成第三个段落:Doc.Paragraphs.Item(3) 数据挖掘论坛
S.TypeParagraph; 数据挖掘交友
数据挖掘工具
数据挖掘交友
//--------------------------设置段落1属性-------------------// 数据挖掘工具
ParaFmt.ConnectTo(Doc.Paragraphs.Item(1).Format);
//绑定WordFont1与Doc.Paragraphs.Item(1).Range.Font 数据挖掘论坛
数据挖掘论坛
WordFont1.ConnectTo(Doc.Paragraphs.Item(1).Range.Font); 数据挖掘实验室
//设置段落对齐方式 数据挖掘交友
ParaFmt.Alignment := wdAlignParagraphCenter;
//设置段落行距(磅)
ParaFmt.SpaceAfter := 24;
数据挖掘论坛
//画单水平线 数据挖掘实验室
ParaFmt.Borders.Item(3).LineStyle := wdLineStyleSingle; 数据挖掘交友
WordFont1.Size := 18; 数据挖掘实验室
WordFont1.Name := "Arial"; 数据挖掘研究院
WordFont1.Bold := integer(True); 数据挖掘工具
WordFont1.ColorIndex:=5; //粉红色字体
//--------------------------设置段落2属性-------------------// 数据挖掘研究院
ParaFmt.ConnectTo(Doc.Paragraphs.Item(2).Format);
//绑定WordFont1与Doc.Paragraphs.Item(1).Range.Font 数据挖掘工具
数据挖掘交友
WordFont1.ConnectTo(Doc.Paragraphs.Item(2).Range.Font); 数据挖掘论坛
//设置段落对齐方式 数据挖掘研究院
ParaFmt.Alignment := wdAlignParagraphCenter; 数据挖掘实验室
//设置段落行距(磅) 数据挖掘实验室
ParaFmt.SpaceAfter := 12; 数据挖掘工具
WordFont1.Size := 18; 数据挖掘工具
WordFont1.Name := "Arial"; 数据挖掘研究院
数据挖掘交友
end;
数据挖掘实验室
procedure TFrm_TravilRDXL.Button1Click(Sender: TObject); 数据挖掘论坛
var 数据挖掘实验室
i,j:integer; 数据挖掘研究院
begin
i:=2;//初始化 数据挖掘论坛
j:=1; 数据挖掘论坛
数据挖掘研究院
WordApplication1.Connect; 数据挖掘论坛
数据挖掘实验室
Doc.ConnectTo(WordApplication1.Documents.Add(EmptyParam, EmptyParam)); 数据挖掘论坛
WordApplication1.Visible := True;//显示word文档 数据挖掘交友
数据挖掘论坛
EnterText;//自定义函数---添加文本 数据挖掘研究院
数据挖掘论坛
数据挖掘论坛
WordApplication1.Selection.SetRange(100,100);//设定段落范围 数据挖掘研究院
数据挖掘交友
数据挖掘论坛
doc.Tables.Add(WordApplication1.Selection.Range,ADOQuery1.RecordCount+1,5);//创建表格 数据挖掘交友
doc.Tables.Item(1).Columns.Item(1).Width:=120;//设定第一列宽度 数据挖掘工具
//--------------------------设定第一列字体属性-----------------------// 数据挖掘研究院
while j<6 do begin 数据挖掘工具
doc.Tables.item(1).cell(1,j).Range.Bold:=integer(true);
WordFont1.ConnectTo(doc.Tables.item(1).cell(1,j).Range.Font);
WordFont1.ColorIndex:=10;
j:=j+1; 数据挖掘实验室
end; 数据挖掘交友
//--------------------------向表格中添加数据----------------------------------------//
doc.Tables.Item(1).Cell(1,1).Range.Text:="线路名称";
doc.Tables.Item(1).cell(1,2).Range.text:="人数"; 数据挖掘工具
doc.Tables.item(1).cell(1,3).Range.text:="销售额(元)"; 数据挖掘交友
doc.Tables.item(1).cell(1,4).Range.text:="毛利润"; 数据挖掘工具
doc.Tables.Item(1).cell(1,5).Range.text:="毛利润率"; 数据挖掘论坛
while not ADOQuery1.Eof do begin 数据挖掘实验室
数据挖掘论坛
doc.Tables.Item(1).Cell(i,1).Range.Text:=ADOQuery1.fieldbyname("linename").asstring; 数据挖掘实验室
doc.Tables.Item(1).cell(i,2).Range.text:=ADOQuery1.Fieldbyname("STUFFNUM").asstring;
doc.Tables.Item(1).cell(i,3).Range.text:=ADOQuery1.Fieldbyname("TOTALACCOUNT").asstring; 数据挖掘工具
doc.Tables.Item(1).cell(i,4).Range.text:=ADOQuery1.Fieldbyname("TOTAL").asstring;
doc.Tables.Item(1).cell(i,5).Range.text:=ADOQuery1.Fieldbyname("ration").asstring; 数据挖掘研究院
ADOQuery1.Next; 数据挖掘论坛
i:=i+1; 数据挖掘研究院
数据挖掘工具
end;
//----------------------------------------------------------------------//
数据挖掘实验室
WordApplication1.Selection.SetRange(350,350);//设定段落范围 数据挖掘实验室
ParaFmt.ConnectTo(WordApplication1.Selection.Paragraphs.item(1).Format);
ParaFmt.Borders.Item(3).ColorIndex:=6; 数据挖掘论坛
ParaFmt.Borders.Item(3).LineStyle:=wdLineStyleSingle;//画底线 数据挖掘论坛
//-----------设置段落字体----------------------------------------// 数据挖掘论坛
WordFont1.ConnectTo(WordApplication1.Selection.Paragraphs.Item(1).Range.Font);
WordFont1.Bold:=integer(true);
WordFont1.Size:=16; 数据挖掘研究院
数据挖掘研究院
//-----------------------------粘贴图形-------------------------//
Image1.Picture.SaveToClipboardFormat(MyFormat,AData,APalette); 数据挖掘工具
Clipboard.SetAsHandle(MyFormat,AData);
doc.Sentences.Last.Paste; 数据挖掘交友
//--------------------------插入记录-------------------------------------// 数据挖掘工具
doc.Range.InsertAfter(#13+"操作员:"+ G_username);//G_username为全局变量 数据挖掘研究院
数据挖掘论坛
数据挖掘论坛
end;
数据挖掘工具
以上有不足之处,望给予批评指正,本人E-MAIL:free_card@163.com 数据挖掘研究院 |