Delphi和Office程序开发

还能再爱你吗14

还能再爱你吗14

2016-02-19 16:24

下面是个简单易学的Delphi和Office程序开发教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!
 

关键词:Delphi;Word;Excel;报表;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.引言

在利用Delphi开发应用程序的时候,通常我们要设计出很多各种格式的文档、报表,经常要进行文件的创建、编辑及修改,虽然Delphi本身提供了很多设计报表的控件或方法,但是存在明显的不足,比如中文输入,数据格式的控制等操作起来比较麻烦。利用大家都很熟悉的Office工具结合开发,能够很好的解决这方面的问题。以下就以Delphi为例详细介绍怎么利用Office完成各种文档、报表的制作。

2.实现方法

利用Delphi和Office结合开发主要有以下三种方法:

(1) 通过Delphi的控件TOleContainer 将Office嵌入,这是最简单的Ole嵌入,能够直接将Office文档调用,只需要使用ToleContainer.Run就可以将Office文档直接启动。且这样启动的Office文档与Delphi程序是一个整体(从界面上看),但是它存在不可克服的缺点,即不能通过Delphi控制Office文档,也就不能实现将灵活操纵Office的目的。

(2) 使用Delphi提供的Servers控件调用Office,使用Office的属性,使用Delphi的Servers控件来操纵Office,在编程时Delphi能够实现代码提示,总体上看能够较好的实现Delphi对Office的控制,但是还有一些Office的功能不能在Delphi中调用(比如自己编写的VBA宏代码)。且实现功能时本来在VBA代码中可选择参数在Delphi调用的时候必须添加,否则,连编译都不能通过。这种方式启动的Office与Delphi程序分属两个窗体。

  (3) 使用CreateOleObject将启动Office,然后以Ole方式对Office进行控制。这种办法是使用以CreateOleObjects方式调用Office,实际上还是Ole,但是这种方式能够真正做到完全控制Office文件,能够使用Office的所有属性,包括自己编写的VBA宏代码。与Servers控件和Com技术相比,本方法能够真正地使用Office的各种属性,和在VBA中编写自己的代码基本一样,可以缺省的代码也不需要使用。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

3.软件实现

       3.1第一种方法:通过Delphi的控件TOleContainer 将Office嵌入,操作方法如下:

(1)    调用Delphi中System页控件ToleContainer实现;

(2)    双击OleContainer,出现如下界面:
  
  (3)这时你可以进行选择了,选择“由文件创建”,选择相应的文档,及就简单的实现了将OFFICE文档调入的功能;如下图:
  
  
  

3.2第二种方法:使用Delphi提供的Servers控件调用Office;它使得我们很容易地把Office中的应用程序(Word, Excel, PowerPoint, Outlook and Access等)当作一个com应用服务器进行控制,以Word为例,介绍其实现方法:

(1)    调用TwordDocument(建立Word文件对象)、TwordApplication(启动Word并建立同Word的连接) 、TwordFont(设置Word文件的字体)、TwordParagraphFormat(设置Word文件中的段落格式)控件;

(2)    启动Word,通过TwordApplication实现;

Try

Wordapplication.Connect;

Except

MessageDlg('Word may not be installed', mtError, [mbOk], 0);

Abort;

End;

                     (3)创建一个新的文件,通过TwordApplication实现;

                            Template := EmptyParam;  //表示不使用模板

NewTemplate := False;  //表示新建新建文档的类型为文档,

//添加新文档

WordApplication.Documents.Add(Template, NewTemplate);                                       WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));

//关闭拼音查找和语法查找,以便提高程序运行的效率

WordApplication.Options.CheckSpellingAsYouType := False;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

WordApplication.Options.CheckGrammarAsYouType := False;

(3)    插入数据,通过TwordDocument实现;

//文本

WordDocument.Range.InsertAfter('Oracle数据库'+ chr(#13));

//表格

WordDocument1.Tables.Add(WordDocument1.Range,rownum,colnum,template,newtemplate); //其中rownum是表格行数,colnum 是表格列数

//向表格中插入数据

WordDocument1.Tables.Item(1).Cell(1,1).Range.Text:='证书编号';

WordDocument1.Tables.Item(1).Cell(1,2).Range.Text:='身份证号码'

(4)    格式的设置

WordFont.ConnectTo(WordDocument.Sentences.GetLast.Font);//设置某些文字

WordFont.ConnectTo(WordDocument.Paragraphs.GetLast.Font);//设置某段文字

WordFont.Bold:=1;

WordFont.Italic:=1;……………………

WordDocument1.PageSetup.HeaderDistance:=1.5; //设置页边距

WordDocument1.PageSetup.FooterDistance:=1.75;

//设置页眉页脚 

WordDocument1.ActiveWindow.ActivePane.View.SeekView:=wdSeekCurrentPageFooter;                        WordDocument1.ActiveWindow.ActivePane.Selection.InsertAfter('第'+inttostr(wdFieldNumPages)+'页');

//让页脚向右靠齐

WordDocument1.ActiveWindow.ActivePane.Selection.ParagraphFormat.Alignment:=wdAlignParagraphRight;

…………………………

3.3第三种方法:使用CreateOleObject将启动Office,然后以Ole方式对Office进行控制。以Excel表格为例(表格的格式可以是事先设定好的,也可以是自己自由定义的,这里以事先设定好表格的格式为例),进行说明:

(1)       在Uses中添加Comobj类;

(2)       申请一个全局变量:FvExcel ,类型为Variant; 表示是Excel对象

(3)    定义一个函数用来启动Excel,如定义function OpenExcel(strFileName : string) : Boolean;

Function Tform1. OpenExcel(strFileName : string) : Boolean;

begin

             Result := True;

             try

                    FvExcel := CreateOleObject('Excel.Application');

                    except

              Application.MessageBox('打开Excel失败',PChar(Application.Title),MB_ICONERROR);

                      Result := False;

                    end;

                    FvExcel.Visible := True;

                    FvExcel.Caption := '';

                    FvExcel.WorkBooks.Open(strFileName); //打开工作簿

                    FvExcel.WorkSheets[1].Activate;  //设置第1个工作表为活动工作表

end;

(4)    向FvExcel中插入数据

FvExcel.cells[row,col].value:=’中国’;//row表示行,col表示列;

(5)    设置格式

fvexcel.rows[row].font.color:=clred; //设置某一行数据的颜色

fvexcel.ActiveSheet.PageSetup.LeftMargin:=1;//设置左页边距

fvexcel.ActiveSheet.PageSetup. RightMargin:=1;//设置右页边距

              fvexcel.ActiveSheet.PageSetup.Zoom:=100;//设置显示比例

              fvexcel.ActiveSheet.PageSetup.PaperSize:= xlPaperA4;//设置打印纸张大

4.一些体会

       在程序设计过程中,我们很多时候要设置Office文档、表格的格式,这时要用到很多属性、方法和函数等,这些属性、方法和函数一般是平时很少用到的,如果手上没有VBA手册,很难查找到这些东西,所以,比较好的方法是首先打开OFFICE,事先做好你要设计的格式,通过OFFICE中的宏记录,然后打开OFFICE中的Visual Basic编辑器,查看代码就可以看到你的操作使用到的属性、方法或者函数了。通常很多属性、函数或者方法可以直接搬到Delphi程序中用,一部分也只要稍微修改,也可以在Delphi中使用了。

5.结束语

       通过Delphi可以很完美的和Office结合,设计出各种样式的表格、文本以及幻灯片等。同时通过Delphi操作数据库,把要求的数据插入Office适当的位置,通过Office本身的功能实现预览、打印和保存,从而减少节约程序调试和定位调试的时间,简化的编程的难度,减少了程序员的工作量。对于用户来讲,采用大家熟悉的Office,增加了系统可操作性。该思想已经在“职称评审管理信息系统”中大量使用。


展开更多 50%)
分享

猜你喜欢

Delphi和Office程序开发

编程语言 网络编程
Delphi和Office程序开发

Delphi开发98屏幕保护预览程序

Delphi
Delphi开发98屏幕保护预览程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Delphi开发WEB应用程序打印组件

Delphi
Delphi开发WEB应用程序打印组件

用Delphi开发Web服务数据库程序

编程语言 网络编程
用Delphi开发Web服务数据库程序

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Delphi 开发数据库应用程序概述

编程语言 网络编程
Delphi 开发数据库应用程序概述

Delphi开发数据库应用程序概述(二)

Delphi
Delphi开发数据库应用程序概述(二)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

看看大侠是如何解决开机“按F1进去xp系统”的技巧

看看大侠是如何解决开机“按F1进去xp系统”的技巧

delphi小技巧集锦

delphi小技巧集锦
下拉加载更多内容 ↓