[英]Removing or Ignoring Empty Cells Returned by .getRange()
因此,我在工作表中有一列數據,我正在使用應用程序腳本函數進行迭代。
問題是我的工作表的末尾有許多空單元格,當我使用.getRange()
時,它們呈現為[]
。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("AUD Data");
var sheetRange = sheet.getRange("F2:F").getValues();
function logRange() {
Logger.log(sheetRange)
}
我想從單元格數組中獲取所有這些空白單元格的末尾,因為當我遍歷此數組時,它會弄亂結果。
嘗試過filter()和isNaN,但是這些解決方案不起作用。
理想情況下,我想在循環之前刪除空數組,但是在某種情況下忽略它們的方法也可以。
我發現有趣的是,即使這些空單元格顯示為空數組,Apps Script似乎也將它們視為具有值。 我的條件應該忽略imo ...例如。
else if (i > 0 && sheetRange[i] <= 0 && sheetRange[i-1] <= 0)
空數組如何被視為數字?
注意:我可以通過刪除工作表中的空行來解決此問題,但寧願使用代碼來解決此問題。
這個答案怎么樣?
在您的電子表格中,如果所有列的最后一行相同或“ F”列的最后一行最底部,那么此修改如何?
var sheetRange = sheet.getRange("F2:F").getValues();
var sheetRange = sheet.getRange(2, 6, sheet.getLastRow() - 1, 1).getValues();
或者,如果“ F”列的最后一行與其他列的最后一行不同,那么下面的修改腳本怎么樣?
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("AUD Data");
var sheetRange = sheet.getRange("F2:F").getValues();
for (var i = sheetRange.length - 1; i >= 0; i--) {
if (sheetRange[i][0]) {
sheetRange.splice(i + 1, sheetRange.length - (i + 1));
break;
}
}
Logger.log(sheetRange)
或者,如果您還想刪除數組中間的空元素,那么下面的腳本怎么樣?
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("AUD Data");
var sheetRange = sheet.getRange("F2:F").getValues().filter(String);
Logger.log(sheetRange)
關於else if (i > 0 && sheetRange[i] <= 0 && sheetRange[i-1] <= 0)
,從您的腳本來看,我認為您可能會使用2維數組來處理這種情況。 如果sheetRange
是getValues()
檢索的值,則它是二維數組。 而getRange("F2:F")
用於此目的。 那么如何修改呢?
else if (i > 0 && sheetRange[i] <= 0 && sheetRange[i-1] <= 0)
else if (i > 0 && sheetRange[i][0] <= 0 && sheetRange[i-1][0] <= 0)
如果我誤解了您的問題,而這不是您想要的方向,我深表歉意。
過濾器中的所有情況都應通過一個簡單的真實陳述來消除,但這將顯式檢查以確保所有這些情況都不會發生。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("AUD Data");
var sheetRange = sheet.getRange("F2:F").getValues();
sheetRange = sheetRange.filter(sheet => sheet != null && sheet != 'undefined' && sheet.trim() != '');
function logRange() {
Logger.log(sheetRange)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.