aardio 文档

aardio 范例: 已有 DOCX 的受控文字替换与表格填值;不启动 Office/WPS。

// 已有 DOCX 的受控文字替换与表格填值;不启动 Office/WPS。
import autos.skills.word;
import fsys.dlg;

var input=fsys.dlg.open("Word 文档|*.docx;*.docm;*.dotx;*.dotm|","打开待编辑文档");
if(!input)return;

var wd=autos.skills.word;
var ed,err=wd.editDocx(input);
if(!ed){print(err);return null,err;}

var paragraphs,err,warnings=ed.listParagraphs();
if(!paragraphs){ed.close();print(err);return null,err;}
for i,p in paragraphs print(i,p.text,p.editable,p.reason);

// 示例:把普通正文中的占位符替换为实际值。
var replaced,err,detail=ed.replaceText("{{客户}}","张三",{expectedCount=1});
if(replaced===null){ed.close();print(err);return null,err;}

// 示例:若第一个表格是普通未合并矩形表,填入一小块数据。
var table=ed.getTable(1);
if(table){
    var written,err=ed.setTableCells(1,[["张三",0],[false,""]],{row=2;column=1});
    if(written===null){ed.close();print(err);return null,err;}
}

var output=fsys.dlg.save("Word 文档|*.docx|","另存受控编辑结果",,,,"edited.docx");
if(!output){ed.close();return;}
var saved,err=ed.save(output,{overwrite=true});
ed.close();
if(!saved){print(err);return null,err;}
raw.explore(saved,"/select");
return saved,{replaced=replaced;detail=detail};

Markdown 格式