gpt4 book ai didi

google-apps-script - 如何使用 AppendRow

转载 作者:行者123 更新时间:2023-12-03 21:23:56 29 4
gpt4 key购买 nike

我从任何编码中都休息了很长时间(比如 5 年),所以现在当我回来做一些有趣的代码和我自己的使用时,我感到完全迷失了,尤其是我实际上从未在电子表格中写过任何宏。所以这对我来说是一个挑战,尤其是我还没有参加任何类(class)。

这次我正在研究 AppendRow 函数。我的部分代码只需要颠倒一张纸的行顺序并将其粘贴到另一张纸中。排序在这种特殊情况下不起作用,我可以只使用 CopyTo 从第一个底部开始并从第二个顶部复制它。相反,我想在第二张纸中使用 AppendRow 从第一张纸的底行开始循环。

这是我的问题。如何使用 AppendRow 复制内容。我搜索了几个小时,只找到了一种使用硬编码 appendrow 内容的方法,例如:

sheet.appendRow(["a man", "a plan", "panama"]);

我知道 appendRow 将 Object[][] 作为参数,但我的技能不足。我试图这样做:
    function SortBankStatement() {
var ss = SpreadsheetApp.getActive();
var unsorted_sheet = ss.getSheetByName("RawAcc1");
var sorted_sheet = ss.getSheetByName("Bank Statement History");
var unsorted_length = unsorted_sheet.getLastRow();
var unsorted_width = unsorted_sheet.getLastColumn();
var unsorted = unsorted_sheet.getRange(1,1,unsorted_length, unsorted_width);
for (var i=unsorted_length;
i>1;
i--) {
sorted_sheet.appendRow(unsorted[i][0]); //don't work
sorted_sheet.appendRow([unsorted[1][i]]); //don't work
sorted_sheet.appendRow([unsorted]); //don't work
sorted_sheet.appendRow([unsorted[i]]); //don't work
sorted_sheet.appendRow(unsorted.getValue(i)); //don't work
sorted_sheet.appendRow(unsorted(please.work)); //surprisingly, don't work

};
};

基本上我不知道如何使用“i”作为源的行指示符追加行。不知道应该如何拼写。我得到的只是关于 appendRow 是一个字符串的错误,“1”是未指定的,并且在一次情况下,而不是复制数据,我得到了所有电子表格,其中填充了“指定的”字符串或其他乱码。

这段代码不必是最优的,我会在达到全部功能后研究它。先感谢您。

最佳答案

AppendRow需要单行(数组)数据或一维数组。

使用 getRange().getValues();范围是一个对象。值是一个数组。循环 for: for (var i=unsorted_length; i>1; i--) {},第一个索引 i=unsorted_length 在数组中未定义,i 的最后一个数是 2。因此,同样,修改循环如下:

function SortBankStatement() {
var ss = SpreadsheetApp.getActive();
var unsorted_sheet = ss.getSheetByName("RawAcc1");
var sorted_sheet = ss.getSheetByName("Bank Statement History");
var unsorted_length = unsorted_sheet.getLastRow();
var unsorted_width = unsorted_sheet.getLastColumn();
var unsorted = unsorted_sheet.getRange(1,1,unsorted_length, unsorted_width).getValues();
for (var i=unsorted_length - 1; i>1; i--) {
sorted_sheet.appendRow(unsorted[i]);
}
}

Sheet2A1:
=SORT(Sheet1!A1:E50,ROW(A1:A50),0)
这将排序 Sheet1A1:E50 从下到上(没有任何实际排序)。

[Array.reverse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse)
var unsortedRng = unsorted_sheet.getRange(1,1,unsorted_length, unsorted_width);
var unsortedVal = unsortedRng.getValues();
unsortedVal.reverse();
unsortedRng.setValues(unsortedVal);

关于google-apps-script - 如何使用 AppendRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50188562/

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