WSH替换word模板

返回
Author Avatar
钢翼
2021-01-25
编程
98

新建一个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("操作成功")