gpt4 book ai didi

javascript - 在 Google 脚本编辑器(Google 表格)中按 K 列过滤数据

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:58 25 4
gpt4 key购买 nike

在这个例子中,我有一组来自 Google 工作表 (4Cat) 的数据输入到我运行 Google 脚本的另一个工作表 (ImportFeeder)。

在下面脚本的末尾,如何插入筛选器脚本以按第 K 行对数据进行排序? (仅展示 iPad 产品)

enter image description here

function myFunction() {
var sss = SpreadsheetApp.openById('1kL96dRm3Z8XBtMXnSzUARxR1b34-njlkZQ1sU0c3g1s'); //replace with source ID
var ss = sss.getSheetByName('4cat'); //replace with source Sheet tab name
var range = ss.getRange('A:I'); //assign the range you want to copy
var data = range.getValues();

var tss = SpreadsheetApp.openById('1u7547KaniKHLUJn2v-ezN4l8ZcxE4viCFcoxsA904MI'); //replace with destination ID
var ts = tss.getSheetByName('Sheet1'); //replace with destination Sheet tab name
ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data);

var range = ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length)
var rawData = range.getValues() // get value from spreadsheet 2
var data = [] // Filtered Data will be stored in this array
for (var i = 0; i< rawData.length ; i++){
if(rawData[i][10] == "iPad") // Check to see if column K says ipad if not skip it
{
data.push(rawData[i])
}
}
}

(无法从未定义中读取属性长度)

4Cat 样本数据 https://docs.google.com/spreadsheets/d/1kL96dRm3Z8XBtMXnSzUARxR1b34-njlkZQ1sU0c3g1s/edit?usp=sharing */

喂入

ImportFeeder https://docs.google.com/spreadsheets/d/1u7547KaniKHLUJn2v-ezN4l8ZcxE4viCFcoxsA904MI/edit?usp=sharing

必需 - 成功的工作表到工作表导入,在 Google Scripts 中按第 K 行过滤数据。在脚本的顶部添加一个 clear() 工作表函数,因为它将每天运行并且工作表需要在每天导入之前清除。

最佳答案

为什么不使用自定义过滤函数?添加了 .toLowerCase() 以匹配不区分大小写的“ipad”。

function myFunction() {
var sss = SpreadsheetApp.openById('1kL96dRm3Z8XBtMXnSzUARxR1b34-njlkZQ1sU0c3g1s'); //replace with source ID
var ss = sss.getSheetByName('4cat'); //replace with source Sheet tab name
var range = ss.getRange('A:V'); //assign the range you want to copy
var rawData = range.getValues() // get value from spreadsheet 1
var data = rawData.filter(isColKiPad); // Filtered Data will be stored in this array
var tss = SpreadsheetApp.openById('1u7547KaniKHLUJn2v-ezN4l8ZcxE4viCFcoxsA904MI'); //replace with destination ID
var ts = tss.getSheetByName('Sheet1'); //replace with destination Sheet tab name
ts.getRange(2,1,ts.getLastRow() - 1,ts.getLastColumn()).clear(); // Assuming header is in the first row, clears sheet but header
ts.getRange(2, 1, data.length, data[0].length).setValues(data);
};
// Change both to ts.getRange(1,1,[...] if there's no header row
function isColKiPad(arr) {
return arr[10].toLowerCase() == "ipad";
};

您是否考虑过使用电子表格公式?您可以尝试结合使用 =IMPORTRANGE(spreadsheet_key, string_range)QUERY(data, query, [header]) 来导入已过滤的范围:

=QUERY(IMPORTRANGE("1kL96dRm3Z8XBtMXnSzUARxR1b34-njlkZQ1sU0c3g1s";"4cat!A:V");"SELECT * WHERE Col11 = 'iPad'")

您甚至不需要以这种方式清理您的工作表。

关于javascript - 在 Google 脚本编辑器(Google 表格)中按 K 列过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43522602/

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