《(精品)MATLAB生成Word和Excel文档.ppt》由会员分享,可在线阅读,更多相关《(精品)MATLAB生成Word和Excel文档.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.利用MATLAB生成Word和Excel文档天天 津津 科科 技技 大大 学学 数数 学学 系系 谢中华谢中华E-mail:12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.我的新书感谢赵社长和陈守平编辑!感谢赵社长和陈守平编辑!感谢感谢rocwoods(吴鹏)!(吴鹏)!感谢感谢math!感谢各位版友的捧场感谢各位版友的捧场!12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.本次报告的提纲 组件对象模型(组件对象模型(COM)MAT
2、LAB中的中的ActiveX控件接口技术控件接口技术 利用利用MATLAB生成生成Word文档文档 利用利用MATLAB生成生成Excel文档文档12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.第一节第一节 组件对象模型(组件对象模型(COM)12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.组件对象模型组件对象模型(Component Object Model,简称简称COM),它是微软公司为了使软件开发更加),它是微软公司为了使软件开发更加符合人类的行为方式而提出的一种规范。在这种规符合人类的行为方式
3、而提出的一种规范。在这种规范下,单个应用程序被分隔成多个独立的部分,也范下,单个应用程序被分隔成多个独立的部分,也即组件(即组件(Component),这种做法的好处是可以),这种做法的好处是可以随着技术的发展而用新的组件取代已有的组件,此随着技术的发展而用新的组件取代已有的组件,此时的应用程序不再是一个一出生就命中注定要过时时的应用程序不再是一个一出生就命中注定要过时的静态程序,而是随时可以用新组件取代旧组件而的静态程序,而是随时可以用新组件取代旧组件而返老还童的动态程序。返老还童的动态程序。一、什么是一、什么是COM12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系
4、天津科技大学数学系.接口查询接口查询 生存期控制生存期控制二、二、COM接口接口1.IUnknown接口接口2.IDispatch接口接口 IDispatch接口接收一个函数名并执行它接口接收一个函数名并执行它12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.第二节第二节 MATLAB中的中的ActiveX控件接口技术控件接口技术一、一、actxcontrol函数函数 h=actxcontrol(progid)h=actxcontrol(progid,param1,value1,)h=actxcontrol(progid,position)h=act
5、xcontrol(progid,position,fig_handle)h=actxcontrol(progid,position,fig_handle,event_handler)h=actxcontrol(progid,position,fig_handle,event_handler,filename)【例例1】创建日历控件创建日历控件%新建一个图形窗口,指定图形窗口大小,返回图形窗口句柄新建一个图形窗口,指定图形窗口大小,返回图形窗口句柄f f=figure(position,360 278 535 410);%在新建的图形窗口中创建一个日历控件,并设置控件的大小在新建的图形窗口中创建
6、一个日历控件,并设置控件的大小 cal=actxcontrol(mscal.calendar,0 0 535 410,f)cal=COM.mscal_calendar12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.eventhandle=(varargin)disp(祝大家身体健康祝大家身体健康!);f=figure(position,360,278,535,410);cal=actxcontrol(mscal.calendar,0,0,535,410,f,eventhandle);12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大
7、学数学系天津科技大学数学系.二、二、actxcontrollist函数函数查看系统上当前安装的所有查看系统上当前安装的所有COM控件控件 C=actxcontrollist%查看系统上当前安装的所有查看系统上当前安装的所有COM控件控件12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.三、三、actxcontrolselect函数函数 h=actxcontrolselect h,info=actxcontrolselect12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.四、四、actxserver函数函数
8、 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控制控制Windows Media Player 播放歌曲播放歌曲%创建创建Windows Media Player服务器,并返回对象句柄服务器,并返回对象句柄h h=actx
9、server(WMPlayer.OCX.7);%播放歌曲青花瓷播放歌曲青花瓷 h.openPlayer(F:我的音乐盒我的音乐盒青花瓷青花瓷.mp3)12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.五、查询五、查询COM对象的接口、方法和事件对象的接口、方法和事件12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.六、识别六、识别COM对象、接口、属性、方法和事件对象、接口、属性、方法和事件12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.七、查询和设置七、查询和
10、设置COM对象(或接口)的属性对象(或接口)的属性 get方法方法 inspect方法方法 set方法方法 addproperty方法方法 deleteproperty方法方法12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.八、调用八、调用COM对象和接口下的方法对象和接口下的方法 S=h.invoke(methodname)S=h.invoke(methodname,arg1,arg2,)V=h.methodname V=h.methodname(arg1,arg2,)【例例3】创建一个日历控件,在一个循环里调用创建一个日历控件,在一个循环里调用
11、NextDay 方法,将时间后推方法,将时间后推1000天,并返回当时的时间天,并返回当时的时间 cal=actxcontrol(mscal.calendar,10 10 540 400);for i=1:1000 cal.NextDay;end cal.Value%返回修改后的时间返回修改后的时间12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.九、注册或注销事件九、注册或注销事件 registerevent方法方法 unregisterevent方法方法 unregisterallevents方法方法十、保存所做的工作十、保存所做的工作 save
12、方法方法十一、释放十一、释放COM接口和对象接口和对象 delete方法方法 release方法方法12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.第三节第三节 利用利用MATLAB生成生成Word文档文档 创建创建Microsoft Word服务器服务器 建立建立Word文本文档文本文档 插入表格插入表格 插入图片插入图片 插入页眉、页码插入页眉、页码 插入公式插入公式 保存文档保存文档 完整案例完整案例12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.一、创建一、创建Microsoft Word服务器
13、服务器try%若若Word服务器已经打开,返回其句柄服务器已经打开,返回其句柄Word Word=actxGetRunningServer(Word.Application);catch%创建一个创建一个Microsoft Word服务器,返回句柄服务器,返回句柄Word Word=actxserver(Word.Application);end1.创建创建Microsoft Word服务器服务器%设置设置Word服务器为可见状态服务器为可见状态 set(Word,Visible,1);%或或Word.Visible=1;2.设置对象属性设置对象属性12/25/2022论坛报告会论坛报告会 谢
14、中华谢中华,天津科技大学数学系天津科技大学数学系.二、建立二、建立Word文本文档文本文档%调用调用Add方法建立一个空白文档,并返回其句柄方法建立一个空白文档,并返回其句柄Document.Document=Word.Documents.Add;1.新建空白文档新建空白文档12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.Document.PageSetup.get2.页面设置页面设置 查看查看PageSetup接口的所有属性接口的所有属性 Document.PageSetup.TopMargin=60;%上边距上边距60磅磅 Document.P
15、ageSetup.BottomMargin=45;%下边距下边距45磅磅 Document.PageSetup.LeftMargin=45;%左边距左边距45磅磅 Document.PageSetup.RightMargin=45;%右边距右边距45磅磅 页面设置页面设置 Document.PageSetup.set(VerticalAlignment)查看枚举类型属性查看枚举类型属性VerticalAlignment的属性值的属性值12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.利用利用Document的的Content接口可以在文档指定位置处写
16、接口可以在文档指定位置处写入一段文字。入一段文字。Content接口有很多属性和方法,读者可通过接口有很多属性和方法,读者可通过Content.get和和Content.methodsview命令查看。其中命令查看。其中Start属属性用来获取或设定文字内容的起始位置,性用来获取或设定文字内容的起始位置,End属性用来获取属性用来获取或设定文字内容的终止位置,或设定文字内容的终止位置,Text属性用来写入文字内容,属性用来写入文字内容,Font属性用于字体设置,属性用于字体设置,Paragraphs属性用于段落设置。属性用于段落设置。3.写入文字内容写入文字内容 Content接口接口%返回返
17、回Document的的Content接口的句柄接口的句柄 Content=Document.Content;Content.Start=0;%设置文档内容的起始位置设置文档内容的起始位置 title=试试 卷卷 分分 析析;Content.Text=title;%输入文字内容输入文字内容 Content.Font.Size=16;%设置字号为设置字号为1612/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.利用利用Word服务器的服务器的Selection接口可以在文档中选定一接口可以在文档中选定一个区域,并对所选区域进行相关操作个区域,并对所选区域进
18、行相关操作。Selection接口接口%返回返回Word服务器的服务器的Selection接口的句柄接口的句柄 Selection=Word.Selection;%设置选定区域的起始位置为文档内容的末尾设置选定区域的起始位置为文档内容的末尾 Selection.Start=Content.end;Selection.TypeParagraph;%回车,另起一段回车,另起一段 xueqi=(2009 2010 学年学年 第一学期)第一学期);Selection.Text=xueqi;%在选定区域输入文字内容在选定区域输入文字内容 Selection.Font.Size=12;%设置字号为设置字号
19、为12 Selection.Font.Bold=0;%字体不加粗字体不加粗 Selection.paragraphformat.Alignment=wdAlignParagraphCenter;%居中对齐居中对齐 Selection.MoveDown;%光标移到所选区域的最后光标移到所选区域的最后 Selection.TypeParagraph;%回车,另起一段回车,另起一段 Selection.TypeParagraph;%回车,另起一段回车,另起一段 Selection.Font.Size=10.5;%设置字号为设置字号为10.512/25/2022论坛报告会论坛报告会 谢中华谢中华,天津
20、科技大学数学系天津科技大学数学系.Word服务器的很多接口下都有服务器的很多接口下都有Paragraphs接口,其作接口,其作用都是类似的,用来进行段落设置用都是类似的,用来进行段落设置。Paragraphs接口接口%返回返回Document的的Paragraphs接口的句柄接口的句柄 DP=Document.Paragraphs;DPI1=DP.Item(1);%返回第返回第1个段落的句柄个段落的句柄 DPI1.Range.Text=Im a teacher working in Tianjin University.of Science and Technology.;%输入第输入第1自然
21、段的文字内容自然段的文字内容%居中对齐居中对齐 DPI1.Range.ParagraphFormat.Alignment=wdAlignParagraphCenter;DPI1.Range.Font.Size=12;%设置字号为设置字号为12 DPI1.Range.Font.Bold=4;%字体加粗字体加粗%在当前自然段的后面插入一个新的自然段在当前自然段的后面插入一个新的自然段 DPI1.Range.InsertParagraphAfter;%第第2自然段首行缩进自然段首行缩进25磅磅 DP.Item(2).FirstLineIndent=25;12/25/2022论坛报告会论坛报告会 谢中
22、华谢中华,天津科技大学数学系天津科技大学数学系.三、插入表格三、插入表格Document接口下有一个接口下有一个Tables接口,实际上接口,实际上Word和和Document的很多接口下都有的很多接口下都有Tables接口,比如接口,比如Word.ActiveDocument、Word.Selection、Document.Paragraphs.Item(1).Range和和Document.Content接口等。这些接口等。这些Tables接口的作用是相同的,接口的作用是相同的,用来在文档中插入表格。用来在文档中插入表格。1.插入表格插入表格 Table=Document.Tables.A
23、dd(handle,m,n);例如:例如:Tab1=Document.Tables.Add(Selection.Range,12,9);Tab2=Document.Tables.Add(Document.Paragraphs.Item(1).Range,2,2);12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.表格表格句柄下有一个句柄下有一个Borders属性属性,它其实也是一个接它其实也是一个接口,用来设置表格边框口,用来设置表格边框。2.设置表格边框设置表格边框 Table.Borders.get%查看查看Borders接口的所有属性接口的所有
24、属性 Table.Borders.set(属性名属性名)%查看查看Borders接口的属性接口的属性值值 Table.Borders.属性名属性名=属性值属性值;%设置表格边框设置表格边框 一个表格有一个表格有8种线(注意不是线型),分别对应上边种线(注意不是线型),分别对应上边框、左边框、下边框、右边框、内横线、内竖线、左框、左边框、下边框、右边框、内横线、内竖线、左上至右下内斜线和左下至右上内斜线上至右下内斜线和左下至右上内斜线12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.表格句柄表格句柄Table的的Rows属性(也是一个接口)是指向表格各
25、行属性(也是一个接口)是指向表格各行的接口,的接口,Columns属性(也是一个接口)是指向表格各列的接属性(也是一个接口)是指向表格各列的接口,通过这两个接口来设置表格的行高、列宽和对齐方式等。口,通过这两个接口来设置表格的行高、列宽和对齐方式等。为行句柄下的为行句柄下的Height属性和列句柄下的属性和列句柄下的Width属性分别赋值,即属性分别赋值,即可完成行高和列宽的设置可完成行高和列宽的设置。3.设置表格设置表格行高和列宽行高和列宽12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.%在光标所在位置插入一个在光标所在位置插入一个12行行9列的
26、表格列的表格 Tab=Document.Tables.Add(Selection.Range,12,9);%定义表格列宽向量和行高向量定义表格列宽向量和行高向量 column_width=53.7736,85.1434,53.7736,35.0094,35.0094,.76.6981,55.1887,52.9245,54.9057;row_height=28.5849,28.5849,28.5849,28.5849,25.4717,25.4717,.32.8302,312.1698,17.8302,49.2453,14.1509,18.6792;%通过循环设置表格每列的列宽通过循环设置表格每列
27、的列宽 for i=1:9 Tab.Columns.Item(i).Width=column_width(i);end%通过循环设置表格每行的行高通过循环设置表格每行的行高 for i=1:12 Tab.Rows.Item(i).Height =row_height(i);end12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.Rows接口的接口的Alignment属性用来设置整个表格的水平对齐方属性用来设置整个表格的水平对齐方式。式。4.设置设置表格对齐方式表格对齐方式 整体设置整体设置%查看查看Alignment属性的属性值属性的属性值 DTI.
28、Rows.set(Alignment)%设置表格整体居中设置表格整体居中 Table.Rows.Alignment=wdAlignRowCenter;按单元格分别设置按单元格分别设置%设置表格的第设置表格的第1个单元格水平对齐个单元格水平对齐方式方式 DTI.Cell(1,1).Range.Paragraphs.Alignment=属性值属性值%设置表格的第设置表格的第1个单元格垂直对齐个单元格垂直对齐方式方式 DTI.Cell(1,1).VerticalAlignment=属性值属性值;12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.Table.
29、Cell(i1,j1).Merge(Table.Cell(i2,j2);5.合并单元格合并单元格 Table.Cell(i,j).Range.Text=单元格内容单元格内容;例如:例如:DTI.Cell(1,1).Range.Text=课程名称课程名称;DTI.Cell(1,3).Range.Text=课程号课程号;DTI.Cell(1,5).Range.Text=任课教师学院任课教师学院;DTI.Cell(1,7).Range.Text=任课教师任课教师;DTI.Cell(2,1).Range.Text=授课班级授课班级;6.输入单元格内容输入单元格内容12/25/2022论坛报告会论坛报告
30、会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.四、插入图片四、插入图片 Document接口下有接口下有InlineShapes和和Shapes属性属性,它们它们都都是接口是接口,利用这利用这两个接口可以在两个接口可以在Word文档中插入图片。由文档中插入图片。由InlineShapes接口插入的图片是接口插入的图片是InlineShape对象对象;由;由Shapes接接口口插入的图像是插入的图像是Shape对象对象。InlineShape对象对象可以是嵌入式可以是嵌入式OLE对象、链接式对象、链接式OLE对对象、嵌入式图片、象、嵌入式图片、OLE控件对象和水平线等。控件对象和水平线
31、等。Word文档中一文档中一幅版式为嵌入式的图片就是一个幅版式为嵌入式的图片就是一个InlineShape对象。可以将对象。可以将InlineShape对象理解为代表文档文字层的对象,对象理解为代表文档文字层的对象,InlineShape 对象被视为字符,可将其像字符一样放置于一行文本中对象被视为字符,可将其像字符一样放置于一行文本中。12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.可以将可以将Shape对象对象理解为代表图形层的对象,诸如自选图理解为代表图形层的对象,诸如自选图形、任意多边形、形、任意多边形、OLE对象、对象、ActiveX控件、
32、图片等。控件、图片等。Shape对象锁定于文本范围内,但是能够任意移动,使用户可以将对象锁定于文本范围内,但是能够任意移动,使用户可以将它们定位于页面的任何位置。它们定位于页面的任何位置。Word文档中一幅版式为四周型、文档中一幅版式为四周型、紧密型、衬于文字下方或浮于文字上方的图片就是一个紧密型、衬于文字下方或浮于文字上方的图片就是一个Shape 对象对象。12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.1.InlineShapes接口和接口和InlineShape对象对象%返回返回InlineShapes接口的句柄接口的句柄 InlineSha
33、pes=Document.InlineShapes;%查看查看InlineShape对象的类型对象的类型 InlineShapes.Item(1).set(Type)2.Shapes接口和接口和Shape对象对象%返回返回Shapes接口的句柄接口的句柄 Shapes=Document.Shapes;%查看查看Shape对象的类型对象的类型 Shapes.Item(1).set(Type);12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.3.插入外部图片插入外部图片 handle=Document.InlineShapes.AddPicture(外
34、部图片所在路径外部图片所在路径);handle=Selection.InlineShapes.AddPicture(外部图片所在路径外部图片所在路径);插入插入InlineShape对象对象第第1条命令在整个文档的左上角(默认锚点位置)插入一幅外条命令在整个文档的左上角(默认锚点位置)插入一幅外部图片。部图片。第第2条命令在当前光标位置插入一幅外部图片。两条命令均返条命令在当前光标位置插入一幅外部图片。两条命令均返回当前回当前InlineShape对象(刚插入的图片)的句柄对象(刚插入的图片)的句柄handle.12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技
35、大学数学系.handle=Document.Shapes.AddPicture(外部图片所在路径外部图片所在路径);handle=Document.Shapes.AddPicture(图片路径图片路径,LinkToFile,SaveWithDocument,Left,Top,Width,Height,Anchor)插入插入Shape对象对象第第1条命令在整个文档的左上角(默认锚点位置)插入一幅外条命令在整个文档的左上角(默认锚点位置)插入一幅外部图片部图片。第第2条命令的作用是指定锚点位置,并在距离锚点一定位置处条命令的作用是指定锚点位置,并在距离锚点一定位置处插入一幅外部图片。后插入一幅外部
36、图片。后7个参数不是必须的,可以为空或从后个参数不是必须的,可以为空或从后向前忽略某些参数。需要注意的是,向前忽略某些参数。需要注意的是,参数参数LinkToFile和和SaveWithDocument的值不能同时为的值不能同时为0或或 False,但可以同时,但可以同时为空为空 12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.例如:例如:%图片完整路径图片完整路径 filename=matlabroot toolboximagesimdemosfootb
37、all.jpg;%在光标位置处插入一幅图片,版式为嵌入式在光标位置处插入一幅图片,版式为嵌入式 handle1=Selection.InlineShapes.AddPicture(filename);%在指定位置处加入一幅图片,版式为浮于文字上方在指定位置处加入一幅图片,版式为浮于文字上方 handle2=Document.Shapes.AddPicture(filename,180,50,200,170);12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.4.插入内部图片插入内部图片 Selection.Paste%粘贴粘贴 Selection.P
38、asteSpecial%选择性粘贴选择性粘贴 Word服务器下的很多接口都有服务器下的很多接口都有Paste和和PasteSpecial方法,方法,它们的作用就是将复制到剪贴板的内容粘贴到它们的作用就是将复制到剪贴板的内容粘贴到Word文档中,文档中,这里的内容可以是文字、公式、表格和图片等,也可以是外部这里的内容可以是文字、公式、表格和图片等,也可以是外部文件。也就是说只要是能复制到剪贴板的内容,都可以通过文件。也就是说只要是能复制到剪贴板的内容,都可以通过Paste和和PasteSpecial方法,把它们插入到方法,把它们插入到Word文档中。文档中。12/25/2022论坛报告会论坛报告
39、会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.【例例4】调用调用normrnd函数生成函数生成1000个服从标准正态分布的随机个服从标准正态分布的随机数,作出频数直方图,并把它插入到数,作出频数直方图,并把它插入到Word文档中。文档中。%调用调用normrnd函数生成函数生成1000个服从标准正态分布的随机数个服从标准正态分布的随机数 data=normrnd(0,1,1000,1);%新建一个图形窗口,设置为不可见状态新建一个图形窗口,设置为不可见状态 zft=figure(units,normalized,position,.0.280469 0.553385 0.428906
40、 0.251302,visible,off);%设置坐标系的位置和大小设置坐标系的位置和大小 set(gca,position,0.1 0.2 0.85 0.75);hist(data);%绘制频数直方图绘制频数直方图 grid on;%添加参考网格添加参考网格 xlabel(考试成绩考试成绩);ylabel(人数人数);%为为X,Y轴加标签轴加标签 hgexport(zft,-clipboard);%将图形复制到剪贴板将图形复制到剪贴板%在当前光标位置处插入剪贴板上的图片,版式为嵌入式在当前光标位置处插入剪贴板上的图片,版式为嵌入式 Selection.Paste;Selection.Typ
41、eParagraph;%回车,另起一段回车,另起一段%在当前光标位置处插入剪贴板上的图片,版式为浮于文字上方在当前光标位置处插入剪贴板上的图片,版式为浮于文字上方 Selection.PasteSpecial;12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.5.InlineShape对象与对象与Shape对象的相互转换对象的相互转换 handle=Document.InlineShapes.Item(i).ConvertToShape;InlineShape对象对象转转Shape对象对象 handle=Document.Shapes.Item(i)
42、.ConvertToInlineShape;Shape对象对象转转InlineShape对象对象12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.6.设置图片的版式(或文字环绕方式设置图片的版式(或文字环绕方式)Document.Shapes.Item(i).WrapFormat.Type=TypeString;Document.Shapes.Item(i).WrapFormat.Type=TypeNum;对于作为对于作为Shape对象的图片,可以设置其版式,即文字环对象的图片,可以设置其版式,即文字环绕方向,而对于作为绕方向,而对于作为Inline
43、Shape对象的图片,却不能直接利用对象的图片,却不能直接利用MATLAB进行版式设置。进行版式设置。首先获取某个首先获取某个Shape对象的句柄,它的对象的句柄,它的WrapFormat接口接口下有一个枚举类型的属性下有一个枚举类型的属性Type,其可能的取值及说明如表,其可能的取值及说明如表4所所示。可按如下方式修改示。可按如下方式修改Type的属性值:的属性值:12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.7.设置图片设置图片叠放次序叠放次序 Do
44、cument.Shapes.Item(i).ZOrder(MsoZOrderCmd);对于对于Shape对象的图片,还可以设置图片的叠放次序。这对象的图片,还可以设置图片的叠放次序。这要用到要用到Shape对象的对象的ZOrder方法,该方法的调用方式为:方法,该方法的调用方式为:12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.五、插入页眉、页码五、插入页眉、页码 Document.ActiveWindow.ActivePane.View.SeekView=wdSeekCurrentPageHeader;Selection.Range.Paragr
45、aphs.Alignment=wdAlignParagraphLeft;Selection.InlineShapes.AddPicture(which(kedalogo.TIF);Selection.MoveRight;Selection.Range.Text=多元统计分析教案多元统计分析教案 ;Selection.SetRange(1,15);Selection.Range.Font.Name=隶书隶书;Selection.Range.Font.Size=16;Selection.Range.Font.bold=2;Selection.EndKey;12/25/2022论坛报告会论坛报告会
46、谢中华谢中华,天津科技大学数学系天津科技大学数学系.Selection.Range.Text=第第;Selection.EndKey;Selection.Fields.Add(Selection.Range,Page);Selection.EndKey;Selection.Range.Text=页页;Selection.SetRange(16,56);Selection.Range.Font.Name=宋体宋体;Selection.Range.Font.Size=12;Document.ActiveWindow.ActivePane.View.SeekView=wdSeekMainDocume
47、nt;12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.六、插入公式六、插入公式 Document.Application.Run(MathTypeCommands.UIWrappers.InsertEquation)12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.七、保存文档七、保存文档 当整个当整个Word文档设计完成之后,需要把它保存到硬盘上,文档设计完成之后,需要把它保存到硬盘上,这要用到这要用到Document接口下的接口下的SaveAs方法方法和和Save方法方法,它们的,它们的调用方法如下调
48、用方法如下:Document.SaveAs(FilenameAndPath);Document.Save;其中其中FilenameAndPath字符串用来指定文件名及保存路字符串用来指定文件名及保存路径径。文档第。文档第1次保存时,若用次保存时,若用Save方法,会弹出一个保存文档方法,会弹出一个保存文档的界面,让用户指定文件名和选择保存路径。若用的界面,让用户指定文件名和选择保存路径。若用SaveAs方方法,默认保存到我的文档文件夹。当不指定文件名和路径时,法,默认保存到我的文档文件夹。当不指定文件名和路径时,文档被自动命名并保存到我的文档文件夹,当只指定路径不文档被自动命名并保存到我的文档
49、文件夹,当只指定路径不指定文件名时,会出现错误。指定文件名时,会出现错误。12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.八、完整案例八、完整案例代码略代码略效果图如右效果图如右12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.第四节第四节 利用利用MATLAB生成生成Excel文档文档 创建创建Microsoft Excel服务器服务器 新建新建Excel工作簿工作簿 获取工作表对象句柄获取工作表对象句柄 插入、复制、删除、移动和重命名工作表插入、复制、删除、移动和重命名工作表 页面设置页面设置 选取工作表区域选取工作表区域 设置行高和列宽设置行高和列宽12/25/2022论坛报告会论坛报告会 谢中华谢中华,天津科技大学数学系天津科技大学数学系.合并单元格合并单元格 边框设置边框设置 设置单元格对齐方式设置单元格对齐方式 写入单元格内容写入单元格内容 插入图片插入图片 保存工作簿保存工作簿 完整案例完整案例12/25/2022