正如标题所述,我目前正在运行一个我认为可能更有效的功能。
基本上,我在电子表格中有一列(k),我正在其中查找文本"delete"
。如果找到该文本,则只需在其后附加", removed"
。这样,如果电子表格中运行的Appsheet看到文本"removed"
,就不会显示该行。
例如,运行函数后,col k的随机行可能看起来像这样:delete, completed, removed
这里的问题是我们的工作表有4000行,要花费1000秒以上才能完成。当然,必须有一种更快的方式来搜索和添加文本,而不是通过for循环为表单中的每一行迭代。]
function removeDeleted() { var ss = SpreadsheetApp.openById(BD_SPREADSHEET_ID); var data = ss.getSheetByName(DATA_TAB); var dataRange = data.getDataRange().getValues(); var colData = []; for (var i = 1; i < dataRange.length; i++) { colData.push(dataRange[i][0]); } for (var i = 0; i < colData.length; i++) { // Take every cell except the first row on col Q (11), as that is the header var comments_cell = data.getDataRange().getCell(i + 2, 11).getValue(); // Check for string "delete" inside cell if (comments_cell.toString().indexOf("delete") !== -1 || comments_cell.toString().indexOf("Delete") !== -1) { // Check for string "removed" not already inside cell if (!(comments_cell.toString().indexOf("removed") !== -1)) { // Append ", removed" data.getDataRange().getCell(i + 2, 11).setValue(comments_cell + ", removed"); } } } }
我仍在学习Google Apps脚本和电子表格的集成,因此我觉得这两个for循环可能有些冗余。任何帮助,将不胜感激。
正如标题所述,我目前正在运行一个我认为可能更有效的功能。本质上,我在电子表格中有一个列(k),我在其中查找文本“删除”。如果该文本...
我还没有测试过,但是我认为这应该可以满足您的需求。我对每一行都进行了注释,以帮助解释逻辑。