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

标签 javascript google-apps-script google-sheets

我的 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/

相关文章:

javascript - 从动态下拉列表中获取选定值(由 javascript 生成的 ID 选项)

javascript - 有没有办法在 NestJS 中使用静态方法和依赖注入(inject)?

javascript - 为什么 3d 模型在不使用任何光源的情况下在 Three.js 中可见?

html - 用于打开 URL 的 Google Apps 脚本

google-sheets - 仅更改括号之间文本的 Google 表格公式

excel - 将两个数据范围合并为一个范围(Google Drive Excel)

google-sheets - 使用单元格在 Google 表格的公式中引用表格名称

javascript - 制作一个简单的 JavaScript slider ,如何向图像添加描述?

javascript - 在 Javascript URL 中传递两个变量以根据传递的值更新下拉列表

javascript - ImportXML 的 JavaScript 等价物是什么?