您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 谢中华-利用MATLAB生成Word和Excel文档
论坛报告会©谢中华,天津科技大学数学系.2019/12/9利用MATLAB生成Word和Excel文档天津科技大学数学系谢中华E-mail:xiezhh@tust.edu.cn论坛报告会©谢中华,天津科技大学数学系.2019/12/9我的新书感谢赵社长和陈守平编辑!感谢rocwoods(吴鹏)!感谢math!感谢各位版友的捧场!论坛报告会©谢中华,天津科技大学数学系.2019/12/9本次报告的提纲※组件对象模型(COM)※MATLAB中的ActiveX控件接口技术※利用MATLAB生成Word文档※利用MATLAB生成Excel文档论坛报告会©谢中华,天津科技大学数学系.2019/12/9第一节组件对象模型(COM)论坛报告会©谢中华,天津科技大学数学系.2019/12/9组件对象模型(ComponentObjectModel,简称COM),它是微软公司为了使软件开发更加符合人类的行为方式而提出的一种规范。在这种规范下,单个应用程序被分隔成多个独立的部分,也即组件(Component),这种做法的好处是可以随着技术的发展而用新的组件取代已有的组件,此时的应用程序不再是一个一出生就命中注定要过时的静态程序,而是随时可以用新组件取代旧组件而返老还童的动态程序。一、什么是COM论坛报告会©谢中华,天津科技大学数学系.2019/12/9接口查询生存期控制二、COM接口1.IUnknown接口2.IDispatch接口IDispatch接口接收一个函数名并执行它论坛报告会©谢中华,天津科技大学数学系.2019/12/9第二节MATLAB中的ActiveX控件接口技术一、actxcontrol函数h=actxcontrol('progid')h=actxcontrol('progid','param1',value1,…)h=actxcontrol('progid',position)h=actxcontrol('progid',position,fig_handle)h=actxcontrol('progid',position,fig_handle,event_handler)h=actxcontrol('progid',position,fig_handle,event_handler,'filename')【例1】创建日历控件%新建一个图形窗口,指定图形窗口大小,返回图形窗口句柄ff=figure('position',[360278535410]);%在新建的图形窗口中创建一个日历控件,并设置控件的大小cal=actxcontrol('mscal.calendar',[00535410],f)cal=COM.mscal_calendar论坛报告会©谢中华,天津科技大学数学系.2019/12/9eventhandle=@(varargin)disp('祝大家身体健康!');f=figure('position',[360,278,535,410]);cal=actxcontrol('mscal.calendar',[0,0,535,410],f,eventhandle);论坛报告会©谢中华,天津科技大学数学系.2019/12/9二、actxcontrollist函数查看系统上当前安装的所有COM控件C=actxcontrollist%查看系统上当前安装的所有COM控件论坛报告会©谢中华,天津科技大学数学系.2019/12/9三、actxcontrolselect函数h=actxcontrolselect[h,info]=actxcontrolselect论坛报告会©谢中华,天津科技大学数学系.2019/12/9四、actxserver函数h=actxserver('progid')h=actxserver('progid','machine','machineName')h=actxserver('progid','interface','interfaceName')h=actxserver('progid','machine','machineName','interface','interfaceName')h=actxserver('progid',machine)【例2】通过MATLAB控制WindowsMediaPlayer播放歌曲%创建WindowsMediaPlayer服务器,并返回对象句柄hh=actxserver('WMPlayer.OCX.7');%播放歌曲青花瓷h.openPlayer('F:\我的音乐盒\青花瓷.mp3')论坛报告会©谢中华,天津科技大学数学系.2019/12/9五、查询COM对象的接口、方法和事件表1invoke、interfaces、methods、methodsview和events函数函数名功能说明invoke调用COM对象上的方法或接口,也可用来显示方法列表interfaces显示COM服务器中由组件实现的所有定制接口列表methods显示类方法相关信息列表,可用来显示COM对象的所有方法名methodsview在单独的图形窗口中显示类方法相关信息,可用来显示COM对象的所有方法的相关信息events显示COM对象能触发的所有事件名论坛报告会©谢中华,天津科技大学数学系.2019/12/9六、识别COM对象、接口、属性、方法和事件表2iscom、isinterface、isprop、ismethod和isevent函数调用方式说明tf=h.iscomtf=iscom(h)判断对象是否是COM对象或ActiveX控件,这里h是对象句柄,若对象是COM对象或ActiveX控件,返回值tf是1,否则,tf为0tf=h.isinterfacetf=isinterface(h)判断句柄h是否是一个COM接口,若是,tf为1,否则为0isprop(h,'name')若字符串name指定的是COM对象h的一个属性,则返回1,否则返回0ismethod(h,'name')若name指定的是一个在COM对象h上可调用的方法,则返回1,否则返回0tf=h.isevent('name')tf=isevent(h,'name')若name指定的是一个由COM对象h认可和响应的事件,则返回tf为1,否则返回tf为0论坛报告会©谢中华,天津科技大学数学系.2019/12/9七、查询和设置COM对象(或接口)的属性get方法inspect方法set方法addproperty方法deleteproperty方法论坛报告会©谢中华,天津科技大学数学系.2019/12/9八、调用COM对象和接口下的方法S=h.invoke('methodname')S=h.invoke('methodname',arg1,arg2,…)V=h.methodnameV=h.methodname(arg1,arg2,…)【例3】创建一个日历控件,在一个循环里调用NextDay方法,将时间后推1000天,并返回当时的时间cal=actxcontrol('mscal.calendar',[1010540400]);fori=1:1000cal.NextDay;endcal.Value%返回修改后的时间论坛报告会©谢中华,天津科技大学数学系.2019/12/9九、注册或注销事件registerevent方法unregisterevent方法unregisterallevents方法十、保存所做的工作save方法十一、释放COM接口和对象delete方法release方法论坛报告会©谢中华,天津科技大学数学系.2019/12/9第三节利用MATLAB生成Word文档创建MicrosoftWord服务器建立Word文本文档插入表格插入图片插入页眉、页码插入公式保存文档完整案例论坛报告会©谢中华,天津科技大学数学系.2019/12/9一、创建MicrosoftWord服务器try%若Word服务器已经打开,返回其句柄WordWord=actxGetRunningServer('Word.Application');catch%创建一个MicrosoftWord服务器,返回句柄WordWord=actxserver('Word.Application');end1.创建MicrosoftWord服务器%设置Word服务器为可见状态set(Word,'Visible',1);%或Word.Visible=1;2.设置对象属性论坛报告会©谢中华,天津科技大学数学系.2019/12/9二、建立Word文本文档%调用Add方法建立一个空白文档,并返回其句柄Document.Document=Word.Documents.Add;1.新建空白文档论坛报告会©谢中华,天津科技大学数学系.2019/12/9Document.PageSetup.get2.页面设置查看PageSetup接口的所有属性Document.PageSetup.TopMargin=60;%上边距60磅Document.PageSetup.BottomMargin=45;%下边距45磅Document.PageSetup.LeftMargin=45;%左边距45磅Document.PageSetup.RightMargin=45;%右边距45磅页面设置Document.PageSetup.set('VerticalAlignment')查看枚举类型属性VerticalAlignment的属性值论坛报告会©谢中华,天津科技大学数学系.2019/12/9利用Document的Content接口可以在文档指定位置处写入一段文字。Content接口有很多属性和方法,读者可通过Content.get和Content.methodsview命令查看。其中Start属性用来获取或设定文字内容的起始位置,End属性用来获取或设定文字内容的终止位置,Text属性用来写入文字内容,Font属性用于字体设置,Paragraphs属性用于段落设置。3.写入文字内容Content接口%返回Document的Content接口的句柄Content=Document.Content;Content.Start=0;%设置文档内容的起始位置title='试卷分析';Content.Text=title;%输入文字内容Content.Font.Size=16;%设置字号为16论坛报告会©谢中华,天津科技大学数学系.2019/12/9利用Word服务器的Selection接口可以在文档中选定一个区域,并对所选区域进行相关操作。Selection接口%返回Word服务器的Selection接口的句柄Selection=Word.Selection;%设置选定区域的起始位置为文档内容的末尾Selection.Start=Content.end;Selection.TypeParagraph;%回车,另起一段xueqi='(2009—2010学年第一学期)';Selection.Text=xueqi;%在选定区域输入文字内容Selection.Font.Size=12;%设置字号为12Selection.Font.Bold=0;%字体不加粗Selection.paragraphformat.Alignment='wdAlignParagraphCenter';%居中对齐Selection.MoveDown;%光标移到所选区域的最后Selection.TypeParagraph;%回车,另起一段Selection.TypeParagraph;%回车,另起一段Selection.Font.Size=10.5;%设置字号为10.5论坛报告会©谢中华,天津科技大学数学系.2019/12/9Wo
本文标题:谢中华-利用MATLAB生成Word和Excel文档
链接地址:https://www.777doc.com/doc-1890046 .html