利用MATLAB生成Word和Excel文档

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

利用MATLAB生成Word和Excel文档本次报告的提纲※组件对象模型(COM)※MATLAB中的ActiveX控件接口技术※利用MATLAB生成Word文档※利用MATLAB生成Excel文档第一节组件对象模型(COM)组件对象模型(ComponentObjectModel,简称COM),它是微软公司为了使软件开发更加符合人类的行为方式而提出的一种规范。在这种规范下,单个应用程序被分隔成多个独立的部分,也即组件(Component),这种做法的好处是可以随着技术的发展而用新的组件取代已有的组件,此时的应用程序不再是一个一出生就命中注定要过时的静态程序,而是随时可以用新组件取代旧组件而返老还童的动态程序。一、什么是COM接口查询生存期控制二、COM接口1.IUnknown接口2.IDispatch接口IDispatch接口接收一个函数名并执行它第二节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_calendareventhandle=@(varargin)disp('祝大家身体健康!');f=figure('position',[360,278,535,410]);cal=actxcontrol('mscal.calendar',[0,0,535,410],f,eventhandle);二、actxcontrollist函数查看系统上当前安装的所有COM控件C=actxcontrollist%查看系统上当前安装的所有COM控件三、actxcontrolselect函数h=actxcontrolselect[h,info]=actxcontrolselect四、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')五、查询COM对象的接口、方法和事件表1invoke、interfaces、methods、methodsview和events函数函数名功能说明invoke调用COM对象上的方法或接口,也可用来显示方法列表interfaces显示COM服务器中由组件实现的所有定制接口列表methods显示类方法相关信息列表,可用来显示COM对象的所有方法名methodsview在单独的图形窗口中显示类方法相关信息,可用来显示COM对象的所有方法的相关信息events显示COM对象能触发的所有事件名六、识别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七、查询和设置COM对象(或接口)的属性get方法inspect方法set方法addproperty方法deleteproperty方法八、调用COM对象和接口下的方法S=h.invoke('methodname')S=h.invoke('methodname',arg1,arg2,…)V=h.methodnameV=h.methodname(arg1,arg2,…)【例3】创建一个日历控件,在一个循环里调用NextDay方法,将时间后推1000天,并返回当时的时间cal=actxcontrol('mscal.calendar',[1010540400]);fori=1:1000cal.NextDay;endcal.Value%返回修改后的时间九、注册或注销事件registerevent方法unregisterevent方法unregisterallevents方法十、保存所做的工作save方法十一、释放COM接口和对象delete方法release方法第三节利用MATLAB生成Word文档创建MicrosoftWord服务器建立Word文本文档插入表格插入图片插入页眉、页码插入公式保存文档完整案例一、创建MicrosoftWord服务器try%若Word服务器已经打开,返回其句柄WordWord=actxGetRunningServer('Word.Application');catch%创建一个MicrosoftWord服务器,返回句柄WordWord=actxserver('Word.Application');end1.创建MicrosoftWord服务器%设置Word服务器为可见状态set(Word,'Visible',1);%或Word.Visible=1;2.设置对象属性二、建立Word文本文档%调用Add方法建立一个空白文档,并返回其句柄Document.Document=Word.Documents.Add;1.新建空白文档Document.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的属性值利用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利用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.5Word服务器的很多接口下都有Paragraphs接口,其作用都是类似的,用来进行段落设置。Paragraphs接口%返回Document的Paragraphs接口的句柄DP=Document.Paragraphs;DPI1=DP.Item(1);%返回第1个段落的句柄DPI1.Range.Text=['I''mateacherworkinginTianjinUniversity'...'ofScienceandTechnology.'];%输入第1自然段的文字内容%居中对齐DPI1.Range.ParagraphFormat.Alignment='wdAlignParagraphCenter';DPI1.Range.Font.Size=12;%设置字号为12DPI1.Range.Font.Bold=4;%字体加粗%在当前自然段的后面插入一个新的自然段DPI1.Range.InsertParagraphAfter;%第2自然段首行缩进25磅DP.Item(2).FirstLineIndent=25;三、插入表格Document接口下有一个Tables接口,实际上Word和Document的很多接口下都有Tables接口,比如Word.ActiveDocument、Word.Selection、Document.Paragraphs.Item(1).Range和Document.Content接口等。这些Tables接口的作用是相同的,用来在文档中插入表格。1.插入表格Table=Document.Tables.Add(handle,m,n);例如:Tab1=Document.Tables.Add(Selection.Range,12,9);

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功