可以根据word或者excel模板,自动替换标识符,录入以后直接批量生成你想要的文件,不仅保函系统,适用于所有类似需求的比如批量生成合同,批量生成word文档等重复性关联性工作,避免一张一张录入大大减少出错的机率!可以去这里下载.
模板文件里面标记格式:英文状态下花括号{标记名字},比如:{项目工程} 即可
先看看软件截图先:
软件截图界面
以下是核心部分实现代码(用python实现的):
mainForm.btnOK.oncommand = function(id,event)
{
var tpldir=string.trim(mainForm.txtTplDir.text);
if(#tpldir==0)
{
mainForm.lbltips.text="请先设置模板所在目录!";
mainForm.btnOK.disabledText = null;
return false;
}
var outdir=string.trim(mainForm.txtOutDir.text);
if(#outdir==0)
{
mainForm.lbltips.text="请先设置输出目录!";
mainForm.btnOK.disabledText = null;
return false;
}
mainForm.btnOK.disabledText = {"✶";"✸";"✹";"✺";"✹";"✷"}
var key1={};
var value1={};
//加载模板
for(k,v in mainForm.listcol.items)
{
//名称v[1],数据v[2]
table.push(key1,v[1]);
if(#v[2])
table.push(value1,v[2]);
else {
table.push(value1,"");
}
}
if(!io.exist(tpldir))
{
win.msgbox("模版目录不存在!");
mainForm.btnOK.disabledText=null;
return false;
}
if(!io.exist(outdir))
{
fsys.createDir(outdir,false);
}
fsys.enum(tpldir, {"*.xls","*.xlsx"},
function(dirname,filename,fullpath,findData){
if(filename){
var bl=instance.ToExcelByMuban(fullpath,outdir+"\\"+filename,key1,value1);
if(bl==false)
win.msgbox("文件"+filename+"操作失败!请检查是否被占用!","温馨提示");
}
}
,true
);
//console.dumpTable(key1);
//console.dumpTable(value1);
fsys.enum(tpldir, {"*.doc","*.docx"},
function(dirname,filename,fullpath,findData){
if(filename){
var bl=instance.ExportWordByFields(fullpath,outdir+"\\"+filename,key1,value1);
if(bl==false)
win.msgbox("文件"+filename+"操作失败!请检查是否被占用!","温馨提示");
}
}
,true
);
win.msgbox("操作完毕!","温馨提示");
mainForm.btnOK.disabledText = null;
}