Google apps script 移除或更换;“未定义”;使用Google Apps脚本在Google Sheets单元格中输入字符串
我的Google apps script 移除或更换;“未定义”;使用Google Apps脚本在Google Sheets单元格中输入字符串,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我的googleapps脚本从HTML表单接收数据。如果未选中字段集中的复选框或单选按钮,则单元格中将显示未定义的字符串,如下所示: 如何使用Google Apps脚本删除或替换单元格中的“未定义”字符串? 以下是我的谷歌应用程序脚本代码的相关部分,它接收表单数据,然后将数据写入工作表: var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0] var nextRow = sheet.getLas
googleapps脚本
从HTML
表单
接收数据。如果未选中字段集中的复选框
或单选按钮
,则单元格中将显示未定义的
字符串,如下所示:
如何使用Google Apps脚本删除或替换单元格中的“未定义”
字符串?
以下是我的谷歌应用程序脚本
代码的相关部分,它接收表单
数据,然后将数据写入工作表
:
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
var nextRow = sheet.getLastRow() + 1
var newRow = headers.map(function(header) {
if (typeof e.parameters[header] !== "undefined") {
return header === "Date" ? new Date() : e.parameters[header].join(", ")
} else {
return header === "Date" ? new Date() : e.parameters[header]
}
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
我创建了以下内容,试图围绕您的代码片段重新创建上下文,以便于进行分析
我在headers.map()
中编辑了内联函数,以实现我认为您正试图实现的目标
逻辑如下:
- 如果值未定义且字段名为“日期”,则返回一个新的
Date()
对象
- 如果值未定义且字段未命名为“日期”,则返回空值
绳子
- 如果值已定义且为数组,则返回通过连接值创建的字符串
- 如果该值已定义且不是数组,则返回该值
在原始代码段中,如果该值不是数组,它将尝试调用join()
,但将失败
var VALUES = [
{
'Foobar': ['Foo', 'Bar', 'Baz'],
'Xyzzy': ['Quux'],
'Name': ['Jane Doe'],
},
{
'Foobar': ['Foo', 'Bar', 'Baz'],
'Xyzzy': undefined,
'Name': ['Peter Pan'],
},
];
function populateCells() {
var sheet = SpreadsheetApp.getActiveSheet();
for (var i = 0; i < VALUES.length; i++) {
var e = {parameters: VALUES[i]};
/** EDITED VERSION OF YOUR CODE SNIPPET STARTS HERE **/
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow() + 1;
var newRow = headers.map(function(header) {
if (typeof e.parameters[header] === 'undefined') {
return header === 'Date' ? new Date : '';
}
if (Array.isArray(e.parameters[header])) {
return e.parameters[header].join(', ')
} else {
return e.parameters[header]
}
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow]);
/** EDITED VERSION OF YOUR CODE SNIPPET ENDS HERE **/
}
}
var值=[
{
‘Foobar’:[‘Foo’、‘Bar’、‘Baz’],
“xyzy”:[“qux”],
'姓名':['Jane Doe'],
},
{
‘Foobar’:[‘Foo’、‘Bar’、‘Baz’],
“xyzy”:未定义,
“姓名”:[“彼得·潘”],
},
];
函数populateCells(){
var sheet=SpreadsheetApp.getActiveSheet();
对于(变量i=0;i