gpt4 book ai didi

javascript - 删除 gsheet 中的第一行并将行向上移动

转载 作者:行者123 更新时间:2023-11-30 19:14:44 26 4
gpt4 key购买 nike

我的 google 表格,值只是一个例子

出于隐私原因,这只是一个 gsheet 作为示例。

在我的实际 gsheet 中,我使用 python 自动附加数据。但是我的表不需要超过 50 行。我如何在带有 JS 的 gsheet 中自动化,如果添加第 51 行,第 1 行被删除并且所有列表条目向上移动一行,以便我的数据位于第 1 行到第 50 行?

var ss = SpreadsheetApp.openById("XXXXX");
var sheet = ss.getSheetByName('Tabellenblatt1');


function myFunction() {

//if row number >50 exceute code below

//first row should be deleted here


//shift rows up
sheet.getRange("A1:B3").moveTo(sheet.getRange("A2:B4"));

}

最佳答案

当您在 python 中输入值时,我真的看不出如何自动处理该问题,因此 onChange 触发器将不起作用。

您仍然可以创建基于时间的触发器并根据输入频率“裁剪”数据。

如果你仍然需要它,你可以试试这个这将删除范围内但不是整行,这意味着这不会影响其他数据。

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet();
var limit = 50;
var numRows = sheet.getLastRow();
var range = sheet.getRange('A1:B' + numRows + '');
var values = range.getValues();
var numRowsToDelete = 0;
if (numRows > limit){
numRowsToDelete = numRows - limit;
values.splice(0, numRowsToDelete)
for (var i = 0; i < numRowsToDelete; i++)
{
var arr = [];
for (var j = 0; j < values[0].length; j++)
arr.push("");
values.push(arr)
}
range.setValues(values);
}
}

或者更简单,如果你想删除你可以做的整行

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getActiveSheet();
var numRows = sheet.getLastRow();
var limit = 50;

if (numRows > limit){
var numRowsToDelete = numRows - limit;
//first argument is the start index where you delete so if you
// have a header you can put 2 and add a + 1 to the limit variable
sheet.deleteRows(1, numRowsToDelete);
}
}

引用:

time based trigger

关于javascript - 删除 gsheet 中的第一行并将行向上移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58124311/

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