我有一個 Google 表單,用于通過將姓名、職務和隸屬關系輸入到 Google 檔案和 Google 表格來收集簽名。但是,除了名稱是必填欄位之外,標題和隸屬關系欄位不是必需的。大多數情況下,填寫表單的人會有一個標題和隸屬關系,但如果其中一個欄位為空,我希望結果顯示時沒有一個逗號,或者如果兩個欄位都為空,則結果顯示時沒有兩個逗號。
例如,如果有人這樣填寫表單——Name: Bob; Title: <blank>; Affiliation: <blank>;那么結果將出現"Bob, ,"在 Google Doc 中。理想情況下,它只會說"Bob"。
或者,示例 2:Name: Bob; Title: <blank>; Affiliation: University;那么理想的結果是"Bob, University"
我對 Google Apps 腳本幾乎一無所知,并且稍微編輯了一個模板腳本以滿足我的需要。任何幫助是極大的贊賞!
function appendSignatureRow(e){
const lock = LockService.getScriptLock();
lock.waitLock(30000);
const name = e.values[2]
const title = e.values[3]
const affiliation = e.values[4]
const letter = DocumentApp.openById('DOC_ID_IS_HERE');
const body = letter.getBody();
const sig = name ", " title ", " affiliation
body.appendParagraph(sig)
letter.saveAndClose();
lock.releaseLock();
}
uj5u.com熱心網友回復:
代替
const sig = name ", " title ", " affiliation
假設 by <blank>,您的意思是空字串,請使用
const sig = [name, title, affiliation].filter(v => v !== '').join(', ');
uj5u.com熱心網友回復:
過濾 掉空白區域并加入:
const sig = [name, title, affiliation].filter(String).join();
uj5u.com熱心網友回復:
function onMyFormSubmit(e) {
let user = LockService.getScriptLock();
user.tryLock(10000);
if (user.hasLock()) {
const doc = DocumentApp.openById('DOC_ID_IS_HERE');
const body = doc.getBody();
body.appendParagraph(e.values.slice(2,5).join(','))
doc.saveAndClose();
user.releaseLock();
}
}
創建觸發器:
function createTrigger() {
ScriptApp.newTrigger('onMyFormSubmit').forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344735.html
標籤:javascript 谷歌应用程序脚本 谷歌表单 字符串连接
上一篇:如何在您的活動中添加編輯器?
