텍스트 문서의 고유 한 문자열을 대체해야합니다 (실제로는 많은 문자열이지만 각각 고유합니다). 따라서 doc.editAsText().replaceText(old$,new$);
을 시도했지만 행운을 ... 여기 내가 사용하는 코드입니다, 그것은 루프에서 교체해야 문자열을 포함하는 템플릿을 복사합니다.문서에서 replaceText (searchPattern, replacement)를 사용하는 방법 서비스/텍스트 클래스
var doc = DocumentApp.openById(docId);;
var lib=["$titre","$nom","$prénom","$rue","$code","$ville","$pays"]
for(nn=1;nn<=selrange.length;++nn){
for(ll=0;ll<lib.length;++ll){
var old$ = (lib[ll]+nn).toString();
var new$ = selrange[nn-1][ll].toString();
var test = old$.replace(old$,new$);
Logger.log(new$+" = "+test);// this is indeed the new value
doc.editAsText().replaceText(old$,new$);
}
}
Logger.log(doc.getText())
}
로거는 문서의 내용을 변경하지 않은 것으로 보여줍니다. 내가 무엇이 누락 되었습니까?
편집 : 자세한 내용은 여기 엔리케의 대답 후 작업 코드 :
for(page=0;page<feuilles;++page){
var today=Utilities.formatDate(new Date(),FUS1,"dd-MM-yyyy")+"__"+Utilities.formatDate(new Date(),FUS1,"HH:mm")
var docname="IMPRESSION_page_"+Number(page+1)+"_"+today;
var docId=DocsList.copy(doctemplate,docname).getId();
var doc = DocumentApp.openById(docId);;
var lib=["titre","nom","prénom","rue","code","ville","pays"]
for(nn=1;nn<=16;++nn){
for(ll=0;ll<lib.length;++ll){
var olditem = ("#"+lib[ll]+nn+"#");
var newitem = selrange[nn-1+page*16][ll];
if(newitem==""){newitem=" "}
//Logger.log(olditem + " *"+newitem+"*")
doc.replaceText(olditem,newitem);
}
}
Utilities.sleep(300); // wait a bit between each doc creation
}
하! Stackoverflow의 구문 하이라이트조차도 새로운 변수 뒤에 $가 마음에 들지 않았습니다! 그래서, 나만이 아니야. D –
Henrique, 네가 아는 것의 10 분의 1을 알았 으면 좋았을 텐데, 내 인생이 더 단순 해졌 으면 좋겠다 !! 어쨌든, 당신의 도움 덕분에 나는 그 모든 것들이 훌륭하게 작동하도록했습니다. 건배, 서지 –
감사합니다. Serge,하지만 당신은 분명히 그 이상을 알고 있습니다. 아마 이걸 가지고 노는 자유 시간이 더 많을거야. 그건 그렇고, 제 대답을 "받아 들였습니다"라고 확인하십시오. 건배, Henrique –