WSH替换word模板
钢翼
编程
新建一个js文件,将以下内容复制到js文件中,修改路径和模板字符串后,双击执行。
//创建word应用
var oWord = new ActiveXObject("Word.Application")
//如果你用的是wps,请将上面的代码改成下面这句
//var oWord = new ActiveXObject("kwps.Application")
//设置word进程可见
oWord.Visible = true
//要替换的数据源,这里是数组,因为可能需要替换成多个文档
//有需要的可以自己改为从excel读取
//前面为需要替换的占位符,后面为替换的文本,如`{name}`会被替换成`张三`
var list = [{
"{name}":"张三",
"{age}":25
},{
"{name}":"李四",
"{age}":24
}];
for(var i=0;i<list.length;i++){
//打开模板文档,需要绝对路径
var oDoc = oWord.Documents.open("E:\\Git\\js-excel\\test.docx");
var oSelection = oWord.Selection;
var item = list[i];
//替换字符串
for(var key in item){
//这里为了避免类型不是字符串,需要item[key]+""转成字符串。
oSelection.find.Execute(key,true,false,false,false,false,true,false,false,item[key]+"",2)
}
//另存文档,需要绝对路径,这里用序号作为文档名称,可以自己修改成其他文件名
oDoc.SaveAs('E:\\Git\\js-excel\\'+i+'.docx');
//关闭模板文档,不保存
oDoc.close(false);
}
//关闭word程序
oWord.Quit()
oWord = null;
//弹窗提示
WScript.Echo("操作成功")