arh*_*rt2 2 google-apps-script
我正在尝试创建一个Google工作表脚本,该脚本将获取名称列表并将其重新发送到Google表格.我有两列数据,第一列包含人名.第二列包含第一个单元格中的人邀请参加聚会的多个单元格.这会产生问题,第1列中的名称可能位于第2行,但如果它们邀请20个人,则第1列的空白行第3-21行.对大多数人来说,现在听起来可能毫无意义,但我希望能够按照邀请人的姓名按字母顺序对表单进行排序,并能够按照客人姓名的字母顺序将其排序为单独的表格在第2列中,同时仍然保留邀请他们的人.这是我能想到完成任务的唯一方法.
我目前仍然坚持将数组写回工作表,我一直得到"不正确的范围高度,是1,但应该是339." 我已经想出如何成功获取数据数据,填写我想要的数据,但似乎无法得到这一部分.我在这里搜索并试图实现我找到的解决方案,但没有运气.
这是我到目前为止所提出的,它一直工作到setValues(
function inviteSorter() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var current = sheet.getSheets()[0];
var lastRow = current.getLastRow();
var rangeData = current.getRange(2,1,lastRow-1,3);
var numColumns = rangeData.getNumColumns();
// Logger.log(rangeData);
var info = rangeData.getValues();
var Name = {};
// Examines the cell in the first column, if it is empty replaces it with the name from the previous cell.
for ( var i = 0; i< info.length; i++){
if (typeof(info[i][0]) == "string" && info[i][0] == ""){
Name[i] = Name[i-1];
} else{
Name[i] = info[i][0];
}
}
var data = []
for (var i = 0; i<lastRow-1; i++){
data.push(Name[i]);
}
var writeRange = current.getRange(2,1,data.length,1);
writeRange.setValues([data]);
Run Code Online (Sandbox Code Playgroud)
您期望的值应该是2D数组,1列多行.使用时得到的 data.push(Name[i]);是一个简单的字符串数组.
尝试这种方式: data.push([Name[i]]); 这将返回一个数组数组,并应满足条件setValues(data)
(不要忘记删除上一个setValues语句中的括号)
| 归档时间: |
|
| 查看次数: |
8489 次 |
| 最近记录: |