Google.App.Script 替换。文本不起作用

问题描述 投票:0回答:1

我对此很陌生,但希望得到任何帮助。我正在尝试使用电子表格并使用替换文本将文本转换为文档。一切似乎都正常,它创建了文档,将其保存在具有正确标题的指定文件夹中,但实际的 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);
  })
}

我正在尝试使用电子表格并使用替换文本将文本转换为文档。

google-apps-script type-conversion google-sheets-api
1个回答
0
投票

我缩小了代码的大小,但基本保持原样。我确实从一开始就消除了标题,因此不再需要跳过它们。我发现代码运行没有问题

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);
  })
}
© www.soinside.com 2019 - 2024. All rights reserved.