MATLAB基础部分——(二)批量修改word

本篇同样是为办公人员特别是人事办公准备的,当人员档案等文件需要制作或修改时,利用matlab同word对接实现批量修改

(一)修改内容

第一处:编号

第二处:单位

第三处:姓名

内容可根据需要进行修改

图1
图1 模板

修改内容存在Excel表格中

图2、姓名、编号、单位

 (二)word模板设计

图3 word初版设计

 在需要修改的地方添加书签,并编写书签编号,这里我用的是content1,2,3,4,5代表。

 (三)关键语句

1、matlab打开word文件

    filename= 'C:\Users\19082\Desktop\模板\5岗位信息.docx';
    try
        Word = actxGetRunningServer('Word.Application');
    catch
   Word = actxserver('Word.Application');
    end;

Document = Word.Documents.Open(filename);

2、将书签接入matlab程序

Bookmarks = Document.Bookmarks;     % 返回Bookmarks接口句柄
Selection = Word.Selection;         % 返回Selection接口句柄
% 之前添加的书签的名称
marks= { 'content1', 'content2', 'content3', 'content4', 'content5'};

3、对每个书签进行修改

for i = 1: length(marks)
    Bookmark = invoke(Bookmarks,'Item',marks{i});
    Selection.Start = Bookmark.Start;   % 光标移动到书签的位置
    if i==1
    Selection.Text = recontent1; % 输入内容
    elseif i==2
    Selection.Text =  recontent2; % 输入内容
    elseif i==3
    Selection.Text =recontent3; % 输入内容
    elseif i==4
    Selection.Text = recontent4; % 输入内容
    elseif i==5
    Selection.Text = recontent5; % 输入内容
    end
end

(四)附录

clc
clear all
close all
 for a=1:21
     clearvars -except a 
      [A,excelname]=xlsread('C:\Users\19082\Desktop\名单.xlsx','A2:G22')
    recontent1=num2str(A(a,1))
    recontent2=num2str(A(a,2))
    recontent3=num2str(A(a,3))
    recontent4=char(excelname(a,4))
    recontent5=char(excelname(a,1)) 
    cd('C:\Users\19082\Desktop')
    % 判断Word是否已经打开,若已打开,就在打开的Word中进行操作,否则就打开Word 
    filename= 'C:\Users\19082\Desktop\模板\5岗位信息.docx';
    try
        Word = actxGetRunningServer('Word.Application');
    catch
   Word = actxserver('Word.Application');
    end;
% 设置Word是否可见
% 在调试的时候可以设置为可见,实际运行时设置为不可见更快捷。
Word.Visible = 0;
% 打开模板文件
Document = Word.Documents.Open(filename);
% 返回书签和光标位置的句柄
Bookmarks = Document.Bookmarks;     % 返回Bookmarks接口句柄
Selection = Word.Selection;         % 返回Selection接口句柄
% 之前添加的书签的名称
marks= { 'content1', 'content2', 'content3', 'content4', 'content5'};
% 开始处理
for i = 1: length(marks)
    Bookmark = invoke(Bookmarks,'Item',marks{i});
    Selection.Start = Bookmark.Start;   % 光标移动到书签的位置
    if i==1
    Selection.Text = recontent1; % 输入内容
    elseif i==2
    Selection.Text =  recontent2; % 输入内容
    elseif i==3
    Selection.Text =recontent3; % 输入内容
    elseif i==4
    Selection.Text = recontent4; % 输入内容
    elseif i==5
    Selection.Text = recontent5; % 输入内容
    end
end
newName = ['5岗位信息',recontent5,'.docx'];
path=['C:\Users\19082\Desktop\工人\',recontent5]
% 文件另存为
cd(path)
Document.SaveAs2([path,'\',newName]);
% 关闭word
end

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖妖兔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值