【发布时间】:2019-04-03 16:25:50
【问题描述】:
在这个 google sheet 函数中,主键会在更改时自动添加到第一列。此函数的问题在于,当添加新行时,尽管该行中的其他单元格为空白,但下面的行也会获得主键。
如何修改此函数,以便仅在右侧第一个单元格(单元格 B)不为空时添加主键?
function myFunction() {
var AUTOINC_COLUMN = 0;
var HEADER_ROW_COUNT = 1;
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var worksheet = spreadsheet.getSheetByName("Sheet1");
var rows = worksheet.getDataRange().getNumRows();
var vals = worksheet.getSheetValues(1, 1, rows+1, 2);
for (var row = HEADER_ROW_COUNT; row < vals.length; row++) {
try {
var id = vals[row][AUTOINC_COLUMN];
Logger.log(id);Logger.log((""+id).length ===0);
if ((""+id).length === 0) {
// Here the columns & rows are 1-indexed
worksheet.getRange(row+1, AUTOINC_COLUMN+1).setValue(row);
}
} catch(ex) {
// Keep calm and carry on
}
}
}
【问题讨论】:
-
您的问题不清楚。您没有提供足够的信息。 主键在更改时自动添加到第一列 这是什么意思?您也不会说您的数据是数字还是文本。拥有电子表格的副本会很有帮助。然而,作为一个在黑暗中的刺,试试这个:在 id:
var col2 = vals[row][1];之后添加一个变量,然后使用这个新行来评估它们if(id.length !=0 && col2.length!=0){。因此,如果 id 不为空且 col2 不为空,则可以添加密钥。如果任一值是字符串,则简单更改为id.toString().length等。
标签: google-apps-script google-sheets