0
我在Google脚本中有一组数据(数组中有大约10个项目)。 如何搜索列A中的这些数组项? (例如:搜索从单元格a12开始直到结尾的项目),并且如果在列A中找不到数组值,然后将它们添加到列A的结尾?如何搜索Google表格列中的数组值并在未找到时插入数组值?
我试图用
data[n][0].toString().match(values_array[i])==values_array[i]
和第二下一次我跑我看到重复的数据获得进入的功能!
例如,从A1到A10的数据如下:(1,2,3,4,5,6,7,8,9,10) 和第一次运行该函数它将所有数据添加到列A(开始a12)
而第二次我运行相同的数据从A1到A10的功能,它不应该输入任何东西,但它会增加1,2,3,4,5,6,7,8,再次9,10!我不知道为什么这个代码是这样的!
如果有专家告诉我如何解决这个问题,我将不胜感激。
function find2(){
var sheet = SpreadsheetApp.getActiveSheet(),
range,
values_array;
range = sheet.getRange('a1:a10');
values_array = range.getValues();
var sh = SpreadsheetApp.getActiveSheet();
var range2 = sh.getRange('a12:a')
data = range2.getValues(); // read all data in the sheet
var lastRowIndex=getLastColumnRow(0)
for (var i = 0; i < values_array.length; i++) {
for(n=0;n<data.length;++n){ // iterate row by row and examine data in column A
if(data[n][0].toString().match(values_array[i])==values_array[i]){
} else {
var lastEmptyRowIndex=1+lastRowIndex+i
SpreadsheetApp.getActiveSheet().getRange('a'+lastEmptyRowIndex).setValue(values_array[i]);
};
}//end of innter for loop
}// end of outer for loop
}
function setUp() {
ScriptProperties.setProperty('active', SpreadsheetApp.getActiveSpreadsheet().getId());
}
function getLastColumnRow(RowNumber) {
var ss = SpreadsheetApp.openById(ScriptProperties.getProperty('active'));
var sheet = ss.getSheetByName("Sheet1");
var data = sheet.getDataRange().getValues();
var numRows = data.length;
// loop from bottom to top for last row in given row "RowNumber"
while(data[numRows - 1][RowNumber] == "" && numRows > 0) {
numRows--;
}
return numRows
}
非常感谢。我从一个API获取一些数据,所以行数增加。你认为你的避免重复数据的方法会在每次行数增加10时快速有效吗?你的代码是否比较完全匹配?最后你可以解释这部分数据[i] [0] =“”?然后将值添加到数组,最后将完整数组插入到列的末尾。 – user1788736