我对此很陌生,但希望得到任何帮助。我正在尝试使用电子表格并使用替换文本将文本转换为文档。一切似乎都正常,它创建了文档,将其保存在具有正确标题的指定文件夹中,但实际的 GoogleDoc 中没有任何文本被替换。我对拼写等进行了三重检查,但我似乎找不到错误。粘贴整个代码,因为我不确定问题出在哪里。
function onOpen() {
const ui = SpreadsheetApp.getUi();
const menu = ui.createMenu('AutoFill Docs');
menu.addItem('Create New Docs', 'createNewGoogleDocs');
menu.addToUi();
}
function createNewGoogleDocs() {
const googleDocTemplate = DriveApp.getFileById('1UqtS6Uw4JU59IizIHZwncJjuSftKOsQH');
const destinationFolder = DriveApp.getFolderById('1avJUSvwJoA31evoNzngcLJiZfympFCWe');
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
const rows = sheet.getDataRange().getValues();
rows.forEach(function(row, index) {
if(index === 0)return;
if(row[29])return;
const copy = googleDocTemplate.makeCopy(`CC_${row[0]}_${row[1]}`, destinationFolder);
const doc = DocumentApp.openById(copy.getId());
const body = doc.getBody();
const friendlyDate = new Date(row[4]).toLocaleDateString();
body.replaceText('{{Full Name}}',row[0]);
body.replaceText('{{Position}}',row[1]);
body.replaceText('{{Yrs of Experience}}',row[2]);
body.replaceText('{{Nationality}}',row[3]);
body.replaceText('{{Date of Birth}}',friendlyDate);
body.replaceText('{{Languages}}',row[5]);
body.replaceText('{{Profile Summary}}',row[6]);
body.replaceText('{{Qualifications}}',row[7]);
body.replaceText('{{Skills}}',row[8]);
body.replaceText('{{Emp1 Date}}',row[9]);
body.replaceText('{{Emp1 Name}}',row[10]);
body.replaceText('{{Emp1 Position}}',row[11]);
body.replaceText('{{Emp1 Resp}}',row[12]);
body.replaceText('{{Emp2 Date}}',row[13]);
body.replaceText('{{Emp2 Name}}',row[14]);
body.replaceText('{{Emp2 Position}}',row[15]);
body.replaceText('{{Emp2 Resp}}',row[16]);
body.replaceText('{{Emp3 Date}}',row[17]);
body.replaceText('{{Emp3 Name}}',row[18]);
body.replaceText('{{Emp3 Position}}',row[19]);
body.replaceText('{{Emp3 Resp}}',row[20]);
body.replaceText('{{Emp4 Date}}',row[21]);
body.replaceText('{{Emp4 Name}}',row[22]);
body.replaceText('{{Emp4 Position}}',row[23]);
body.replaceText('{{Emp4 Resp}}',row[24]);
body.replaceText('{{Emp5 Date}}',row[25]);
body.replaceText('{{Emp5 Name}}',row[26]);
body.replaceText('{{Emp5 Position}}',row[27]);
body.replaceText('{{Emp5 Resp}}',row[28]);
doc.saveAndClose();
const url = doc.getUrl();
sheet.getRange(index+1,29).setValue(url);
})
}
我正在尝试使用电子表格并使用替换文本将文本转换为文档。
我缩小了代码的大小,但基本保持原样。我确实从一开始就消除了标题,因此不再需要跳过它们。我发现代码运行没有问题
function createNewGoogleDocs() {
const googleDocTemplate = DriveApp.getFileById(gobj.globals.testdocid);
const destinationFolder = DriveApp.getFolderById(gobj.globals.folder1id);
const ss = SpreadsheetApp.getActive();
const sheet = ss.getSheetByName('Sheet0');
const [,...vs] = sheet.getDataRange().getValues();
vs.forEach((r, i) => {
if(r[8])return;
const copy = googleDocTemplate.makeCopy(`CC_${r[0]}_${r[1]}`, destinationFolder);
const doc = DocumentApp.openById(copy.getId());
const body = doc.getBody();
const dts = new Date(r[4]).toLocaleDateString();
body.replaceText('{{COL1}}',r[0]);
body.replaceText('{{COL2}}',r[1]);
body.replaceText('{{COL3}}',r[2]);
body.replaceText('{{COL4}}',r[3]);
body.replaceText('{{COL5}}',dts);
body.replaceText('{{COL6}}',r[5]);
body.replaceText('{{COL7}}',r[6]);
body.replaceText('{{COL8}}',r[7]);
doc.saveAndClose();
const url = doc.getUrl();
sheet.getRange(i+1,9).setValue(url);
})
}