在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、可供选择的技术: (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,相比(2)Service控件的最大缺点就不支持代码Code的自动生成,但是咱们充分的利用VBA代码Code就能够弥补那个功能,这种方式能够真正做到完全控制Office文件,能够使用Office的所有属性,包括自己编写的VBA宏代码。与Servers控件和Com技术相比,本方法能够真正地使用Office的各种属性,和在VBA中编写自己的代码基本一样,可以缺省的代码也不需要使用。重点放在这种技术的使用上。 2、Delphi使用CreateOleObject 技术操控Office文档。 原理性描述: 1、 生成VBA代码Code。Word本身具有很强的可扩展性,尤其是支持用户自定义功能,其呈现 Sub ething宏1() ' ' ething宏1 宏 ' 替换 ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "你" .Replacement.Text = "您" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub 2、 精简宏代码Code。通常,生成的宏代码Code有很多语句对您要呈现的功能来说都是多余的。咱们要 例子: 使用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;//设置打印纸张大小
资料备查,源自网络 http://www.cnblogs.com/chinahbzm/articles/1086971.html http://www.huinu.com/?action-viewnews-itemid-45961 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论