2024年4月11日发(作者:)

07级电信(2)班 刘坤洋 24

function ceshi_Word

%利用MATLAB生成Word文档

% ceshi_Word

%

% Copyright 2009 - 2010 xiezhh.

% $Revision: 1.0.0.0 $ $Date: 2009/12/14 12:37:00 $

% 设定测试Word文件名和路径

filespec_user = [pwd '测试.doc'];

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

try

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

Word = actxGetRunningServer('ation');

catch

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

Word = actxserver('ation');

end;

% 设置Word属性为可见

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

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

if exist(filespec_user,'file');

Document = (filespec_user);

% Document = invoke(nts,'Open',filespec_user);

else

Document = ;

% Document = invoke(nts, 'Add');

(filespec_user);

end

Content = t; % 返回Content接口句柄

Selection = ion; % 返回Selection接口句柄

Paragraphformat = aphFormat; % 返回ParagraphFormat接口句柄

% 页面设置

gin = 60; % 上边距60磅

Margin = 45; % 下边距45磅

rgin = 45; % 左边距45磅

argin = 45; % 右边距45磅

% 设定文档内容的起始位置和标题

= 0; % 设置文档内容的起始位置

页脚内容

1

07级电信(2)班 刘坤洋 24

title = '试 卷 分 析';

= title; % 输入文字内容

= 16 ; % 设置字号为16

= 4 ; % 字体加粗

ent = 'wdAlignParagraphCenter'; % 居中对齐

= ; % 设定下面内容的起始位置

ragraph; % 回车,另起一段

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

= xueqi; % 在当前位置输入文字内容

= 12; % 设置字号为12

= 0; % 字体不加粗

wn; % 光标下移(取消选中)

ent = 'wdAlignParagraphCenter'; % 居中对齐

ragraph; % 回车,另起一段

ragraph; % 回车,另起一段

= 10.5; % 设置字号为10.5

% 在光标所在位置插入一个12行9列的表格

Tables = (,12,9);

% 返回第1个表格的句柄

DTI = (1); % 或DTI = Tables;

% 设置表格边框

eLineStyle = 'wdLineStyleSingle';

eLineWidth = 'wdLineWidth150pt';

LineStyle = 'wdLineStyleSingle';

LineWidth = 'wdLineWidth150pt';

ent = 'wdAlignRowCenter';

(8).(1).LineStyle = 'wdLineStyleNone';

(8).(3).LineStyle = 'wdLineStyleNone';

(11).(1).LineStyle = 'wdLineStyleNone';

(11).(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

(i).Width = column_width(i);

页脚内容

2

07级电信(2)班 刘坤洋 24

end

% 通过循环设置表格每行的行高

for i = 1:12

(i).Height = row_height(i);

end

% 通过循环设置每个单元格的垂直对齐方式

for i = 1:12

for j = 1:9

(i,j).VerticalAlignment = 'wdCellAlignVerticalCenter';

end

end

% 合并单元格

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

= ; % 设置光标位置在文档内容的结尾

ragraph; % 回车,另起一段

= '主管院长签字: 年 月 日'; % 输入文字内

ent = 'wdAlignParagraphRight'; % 右对齐

wn; % 光标下移

% 写入表格内容

(1,1). = '课程名称';

(1,3). = '课程号';

页脚内容

3

07级电信(2)班 刘坤洋 24

(1,5). = '任课教师学院';

(1,7). = '任课教师';

(2,1). = '授课班级';

(2,3). = '考试日期';

(2,5). = '应考人数';

(2,7). = '实考人数';

(3,1). = '出卷方式';

(3,3). = '阅卷方式';

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

(3,7). = '考试时间';

(4,1). = '考试方式';

(4,3). = '平均分';

(4,5). = '不及格人数';

(4,7). = '及格率';

(5,1). = '成绩分布';

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

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

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

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

(7,1). = ['试卷分析(含是否符合教学大纲、难度、知识覆'...

'盖面、班级分数分布分析、学生答题存在的共性问题与知识掌握情况、教学中'...

'存在的问题及改进措施等内容)'];

(7,1).ent = 'wdAlignParagraphLeft';

(9,2). = '签字 :';

(9,4). = '年 月 日';

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

(10,1).ent = 'wdAlignParagraphLeft';

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

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

(11,2).ent = 'wdAlignParagraphLeft';

(8,1).ent = 'wdAlignParagraphLeft';

(8,1).VerticalAlignment = 'wdCellAlignVerticalTop';

(9,2).(2).LineStyle = 'wdLineStyleNone';

(9,2).(4).LineStyle = 'wdLineStyleNone';

(9,3).(4).LineStyle = 'wdLineStyleNone';

(11,1).(4).LineStyle = 'wdLineStyleNone';

% 如果当前工作文档中有图形存在,通过循环将图形全部删除

Shape = ; % 返回Shapes接口的句柄

ShapeCount = ; % 返回文档中Shape对象的个数

if ShapeCount ~= 0;

for i = 1:ShapeCount;

(1).Delete; % 删除第1个Shape对象

end;

页脚内容

4

07级电信(2)班 刘坤洋 24

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列的单元格里),并设置图形版式为浮

于文字上方

% pecial;

(8,1).(1).pecial;

(1). = 3;

(1).ZOrder('msoBringInFrontOfText'); % 设置图片叠放次序为浮于文

字上方

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

= 'wdPrintView'; % 设置视图方

式为页面

; % 保存文档

页脚内容

5