正在做MATLAB方面的东西,看到了这段代码,太赞了,直接可用!

% function ceshi_Word

%利用MATLAB生成Word文档

filespec_user = [pwd '\测试.doc'];% 设定测试Word文件名和路径

% 判断Word是否已经打开,若已打开,就在打开的Word中进行操作,否则就打开Word

try

% 若Word服务器已经打开,返回其句柄Word

Word = actxGetRunningServer('Word.Application');

catch

% 否则,创建一个Microsoft Word服务器,返回句柄Word

Word = actxserver('Word.Application');

end;

Word.Visible = 1; % 或set(Word, 'Visible', 1);

% 若测试文件存在,打开该测试文件,否则,新建一个文件,并保存,文件名为测试.doc

if exist(filespec_user,'file');

Document = Word.Documents.Open(filespec_user);

% Document = invoke(Word.Documents,'Open',filespec_user);

else

Document = Word.Documents.Add;

% Document = invoke(Word.Documents, 'Add');

Document.SaveAs2(filespec_user);

end

% 设定光标位置从头开始

Content = Document.Content;

Selection = Word.Selection;

Paragraphformat = Selection.ParagraphFormat;

% 设定页面大小

Document.PageSetup.TopMargin = 60; % 单位像素

Document.PageSetup.BottomMargin = 45;

Document.PageSetup.LeftMargin = 45;

Document.PageSetup.RightMargin = 45;

% Content.InsertParagraphAfter;% 插入一段

% Content.Collapse=0; % 0为不覆盖
Content.Start = 0;

title = '试 卷 分 析';

Content.Text = title;

Content.Font.Size = 16 ;

Content.Font.Bold = 4 ;

Content.Paragraphs.Alignment = 'wdAlignParagraphCenter';% 设定段落格式

Selection.Start = Content.end;% 定义开始的位置

Selection.TypeParagraph;

% 插入内容并定义字体字号

xueqi = '( 2009 — 2010 学年 第一学期)';

Selection.Text = xueqi;

Selection.Font.Size = 12;

Selection.Font.Bold = 0; Selection.MoveDown;

paragraphformat.Alignment = 'wdAlignParagraphCenter';

Selection.TypeParagraph;

Selection.TypeParagraph;

Selection.Font.Size = 10.5;

Tables = Document.Tables.Add(Selection.Range,12,9);

DTI = Document.Tables.Item(1); % 或DTI = Tables;

DTI.Borders.OutsideLineStyle = 'wdLineStyleSingle';% 设置外边框的线型,Dash,DashDot,DashDotDot,DashSmallGap,DashLargeGap,Dot,Double,Triple等

DTI.Borders.OutsideLineWidth = 'wdLineWidth150pt';% 设置线宽,有025,050,075,100,150,225,300,450,600pt等

DTI.Borders.InsideLineStyle = 'wdLineStyleSingle';%设置内边框的线型

DTI.Borders.InsideLineWidth = 'wdLineWidth150pt';

DTI.Rows.Alignment = 'wdAlignRowCenter';%设置行对齐方式

DTI.Rows.Item(8).Borders.Item(1).LineStyle = 'wdLineStyleNone';% 设置第8行上边界线型,1,2,3,4分别对应单元格的上、左、下、右边界

DTI.Rows.Item(8).Borders.Item(3).LineStyle = 'wdLineStyleNone';% 设置第8行下边界线型

DTI.Rows.Item(11).Borders.Item(1).LineStyle = 'wdLineStyleNone';

DTI.Rows.Item(11).Borders.Item(3).LineStyle = 'wdLineStyleNone';

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]; % 设置行高

for i = 1:9

DTI.Columns.Item(i).Width = column_width(i);

end

for i = 1:12

DTI.Rows.Item(i).Height = row_height(i);

end

for i = 1:12

for j = 1:9

DTI.Cell(i,j).VerticalAlignment = 'wdCellAlignVerticalCenter';% 设置单元格竖直对齐方式,有Bottome,Center,Top

end

end

% 合并单元格

DTI.Cell(1, 4).Merge(DTI.Cell(1, 5));

DTI.Cell(2, 4).Merge(DTI.Cell(2, 5));

DTI.Cell(3, 4).Merge(DTI.Cell(3, 5));

DTI.Cell(4, 4).Merge(DTI.Cell(4, 5));

DTI.Cell(5, 2).Merge(DTI.Cell(5, 5));

DTI.Cell(5, 3).Merge(DTI.Cell(5, 6));

DTI.Cell(6, 2).Merge(DTI.Cell(6, 5));

DTI.Cell(6, 3).Merge(DTI.Cell(6, 6));

DTI.Cell(5, 1).Merge(DTI.Cell(6, 1));

DTI.Cell(7, 1).Merge(DTI.Cell(7, 9));

DTI.Cell(8, 1).Merge(DTI.Cell(8, 9));

DTI.Cell(9, 1).Merge(DTI.Cell(9, 3));

DTI.Cell(9, 2).Merge(DTI.Cell(9, 3));

DTI.Cell(9, 3).Merge(DTI.Cell(9, 4));

DTI.Cell(9, 4).Merge(DTI.Cell(9, 5));

DTI.Cell(10, 1).Merge(DTI.Cell(10, 9));

DTI.Cell(11, 5).Merge(DTI.Cell(11, 9));

DTI.Cell(12, 5).Merge(DTI.Cell(12, 9));

DTI.Cell(11, 1).Merge(DTI.Cell(12, 4));

Selection.Start = Content.end; % 设定光标位置为最后

Selection.TypeParagraph;

Selection.Text = '主管院长签字: 年 月 日';

Paragraphformat.Alignment = 'wdAlignParagraphRight';

Selection.MoveDown; % 下移一行

% 指定各单元格内容

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 = '授课班级';

DTI.Cell(2,3).Range.Text = '考试日期';

DTI.Cell(2,5).Range.Text = '应考人数';

DTI.Cell(2,7).Range.Text = '实考人数';

DTI.Cell(3,1).Range.Text = '出卷方式';

DTI.Cell(3,3).Range.Text = '阅卷方式';

DTI.Cell(3,5).Range.Text = '选用试卷A/B';

DTI.Cell(3,7).Range.Text = '考试时间';

DTI.Cell(4,1).Range.Text = '考试方式';

DTI.Cell(4,3).Range.Text = '平均分';

DTI.Cell(4,5).Range.Text = '不及格人数';

DTI.Cell(4,7).Range.Text = '及格率';

DTI.Cell(5,1).Range.Text = '成绩分布';

DTI.Cell(5,2).Range.Text = '90分以上 人占 %';

DTI.Cell(5,3).Range.Text = '80---89分 人占 %';

DTI.Cell(6,2).Range.Text = '70--79分 人占 %';

DTI.Cell(6,3).Range.Text = '60---69分 人占 %';

DTI.Cell(7,1).Range.Text = ['试卷分析(含是否符合教学大纲、难度、知识覆盖面、班级分数分布分析、学生答题存在的共性问题与知识掌握情况、教学中存在的问题及改进措施等内容)'];

DTI.Cell(7,1).Range.ParagraphFormat.Alignment = 'wdAlignParagraphLeft';

DTI.Cell(9,2).Range.Text = '签字 :';

DTI.Cell(9,4).Range.Text = '年 月 日';

DTI.Cell(10,1).Range.Text = '教研室审阅意见:';

DTI.Cell(10,1).Range.ParagraphFormat.Alignment = 'wdAlignParagraphLeft';

DTI.Cell(10,1).VerticalAlignment = 'wdCellAlignVerticalTop';

DTI.Cell(11,2).Range.Text = '教研室主任(签字): 年 月 日';

DTI.Cell(11,2).Range.ParagraphFormat.Alignment = 'wdAlignParagraphLeft';

DTI.Cell(8,1).Range.ParagraphFormat.Alignment = 'wdAlignParagraphLeft';

DTI.Cell(8,1).VerticalAlignment = 'wdCellAlignVerticalTop';% 设定单元格对齐方式

DTI.Cell(9,2).Borders.Item(2).LineStyle = 'wdLineStyleNone';% 隐藏单元格边界

DTI.Cell(9,2).Borders.Item(4).LineStyle = 'wdLineStyleNone';

DTI.Cell(9,3).Borders.Item(4).LineStyle = 'wdLineStyleNone';

DTI.Cell(11,1).Borders.Item(4).LineStyle = 'wdLineStyleNone';

Shape = Document.Shapes;% 增加一个对象

ShapeCount = Shape.Count;% 对象计数

if ShapeCount ~= 0;% 删除所有的对象

for i = 1:ShapeCount;

Shape.Item(1).Delete;

end;

end;

% 产生标准正态分布随机数,画直方图,并设置图形属性

zft = figure('units','normalized','position',[0.280469 0.553385 0.428906 0.251302],'visible','off'); % 新建图形窗口,设为不可见

set(gca,'position',[0.1 0.2 0.85 0.75]); % 设置坐标系的位置和大小

data = normrnd(0,1,1000,1); % 产生标准正态分布随机数

hist(data); % 绘制标准正态分布随机数的频数直方图

grid on; % 添加参考网格

xlabel('考试成绩'); % 为X轴加标签

ylabel('人数'); % 为Y轴加标签

% 将图形复制到粘贴板

hgexport(zft, '-clipboard');

% 将图形粘贴到当前文档里(表格的第8行第1列的单元格里),并设置图形版式为浮于文字上方

% Selection.Range.PasteSpecial;

DTI.Cell(8,1).Range.Paragraphs.Item(1).Range.Paste; % 设置图片为嵌入式,与图片为浮于文字上方相互转化为ConvertToInlineShape,ConvertToShape

delete(zft); % 删除图形句柄

Document.ActiveWindow.ActivePane.View.Type = 'wdPrintView'; % 设置视图方式为页面

Document.Save; % 保存文档

Document.Close; % 关闭文档

Word.Quit; % 退出word服务器

Matlab生成Word文件(含表格和图片插入)相关推荐

  1. matlab 生成 word 表格,利用MATLAB生成Word文档.doc

    利用MATLAB生成Word文档 function ceshi_Word %利用MATLAB生成Word文档 % ceshi_Word % % Copyright 2009 - 2010 xiezhh ...

  2. 利用freemarker 在模板里面写入动态数据,动态表格,图片插入并生成word文档

    利用freemarker 在模板里面写入动态数据,动态表格,图片插入. 以下测试代码图片(image.jpg)和模板(template.xml)是直接放到src目录下面的,可以根据自己需求调整 废话不 ...

  3. Freemarker生成word文件,打开后页眉和页脚图片不显示

    Freemarker生成word文件,打开后页眉和页脚图片不显示 在我们开发过程中通常会把模板文件Ctrl+Alt+L格式化,方便处理.这样就造成word的标签格式产生多余的换行或者空白,但是word ...

  4. [转载]Matlab生成Word报告

    最近在进行一批来料的检验测试,一个个手动填写报告存图片太慢了,就有了种想要使用Matlab在分析完后数据可以自动生成PDF报告的想法,于是就去网上搜索了相关的资料,发现Matlab中文论坛上有xiez ...

  5. matlab2015 word,利用MATLAB生成Word文档

    <利用MATLAB生成Word文档>由会员分享,可在线阅读,更多相关<利用MATLAB生成Word文档(5页珍藏版)>请在人人文库网上搜索. 1.function ceshi_ ...

  6. matlab生成word模板

    matlab gui一个成绩录入系统 function varargout = grade_word(varargin) % GRADE_WORD MATLAB code for grade_word ...

  7. Java使用iText生成word文件的完美解决方案(亲测可行)

    JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案 一种是pio但是他的excel处理很程序 wor ...

  8. Python 自动化教程(5) : 自动生成Word文件

    系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...

  9. matlab 写word文档,用Matlab生成Word文档

    用Matlab生成Word文档用Matlab编了一段程序,可以生成Word文档,文档中含有表格,代码如下: filespec = 'C:\Documents and Settings\Administ ...

最新文章

  1. c++ 判断nil_golang A=nil,B=A,but B!=nil 这是真的
  2. POJ 3167 Cow Pattern ★(KMP好题)
  3. 微信提交表单到服务器,微信小程序页面表单如何跟图片一起上传服务器
  4. 从GAN到WGAN到LipschitzGA
  5. k-means聚类代码实现
  6. 为啥大街上全是跑外卖的年轻人?
  7. GNU make manual 翻译(三十八)
  8. 传输层协议(9):滑动窗口(3)——会呼吸的痛
  9. 介绍一些预言性质的梦
  10. 实用多媒体技术 课程习题及解答
  11. netdraw绘制网络结构图
  12. PE使用万能驱动7解决USB3、NVME驱动问题及台式机、笔记本电脑使用PE因驱动问题不能加载硬盘问题(YOGA 14C 因PE加载不了硬盘亲测可用)
  13. 鼎捷ERP易飞9.0.8实战课程-卓致羽-专题视频课程
  14. nmds与mds的区别_聚类分析和NMDS分析的基本步骤.doc
  15. 胶囊神经网络模型简介_胶囊网络简介
  16. java 篮球队淘汰赛_篮球淘汰赛怎么安排 6支篮球队淘汰赛图
  17. 【CV系列】颜色恒常性理论及应用
  18. 【人工智能 AI 2.0】阿里VP贾扬清被曝将离职创业:建大模型基础设施 已火速锁定首轮融资
  19. 照片转化成二维图片怎么做?图片内容如何生成二维码?
  20. potplayer 多个进程_Linux系统编程1.2:进程概念简介

热门文章

  1. django中实现页面倒数几秒后自动跳转
  2. 银河麒麟aarchQt5.12.0 QtFontDatabase: Cannot find font directory
  3. Java构造器(构造方法)详解
  4. 关于spyder闪退打不开的解决方法
  5. 【图形学】16 光照模型(一、理论与公式)
  6. onscroll监听不生效,scrollTop一直为0
  7. 解决打开png图片黑屏问题(批量还原Xcode优化后的png)
  8. 成都学python_成都学习Python语言前景如何?
  9. my thinking
  10. Unity Animator简单使用