gpt4 book ai didi

javascript - 删除或忽略 .getRange() 返回的空单元格

转载 作者:行者123 更新时间:2023-11-30 13:54:07 25 4
gpt4 key购买 nike

所以我在工作表中有一列数据,我正在使用应用程序脚本函数对其进行迭代。

问题是我的工作表末尾有许多空单元格,当我使用 .getRange() 时,它们呈现为 []

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("AUD Data");
var sheetRange = sheet.getRange("F2:F").getValues();

function logRange() {
Logger.log(sheetRange)
}

返回 enter image description here

我想在最后从我的单元格数组中获取所有这些空白单元格,因为当我遍历这个数组时它会弄乱结果。

试过filter() and isNaN但这些解决方案并没有奏效。

理想情况下,我想在循环之前删除空数组,但是在某个条件下忽略它们的方法也可以。

我发现有趣的是,尽管这些空单元格显示为空数组,但 Apps 脚本似乎将它们视为具有值。我的条件应该忽略 imo... 例如。

else if (i > 0 && sheetRange[i] <= 0 && sheetRange[i-1] <= 0)

如何将空数组视为数字?

注意:我可以通过删除工作表中的空行来解决这个问题,但我更愿意使用代码来解决这个问题。

最佳答案

这个答案怎么样?

问题 1:

在您的电子表格中,如果所有列的最后一行相同或“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)

问题 2:

关于else if (i > 0 && sheetRange[i] <= 0 && sheetRange[i-1] <= 0) ,从你的脚本来看,我认为你可能会使用二维数组来处理这种情况。如果sheetRangegetValues() 检索到的值,它是二维数组。和 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)

引用资料:

如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

关于javascript - 删除或忽略 .getRange() 返回的空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57626165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com