google-apps-script - 将行附加到特定列?
问题描述
function dailyprofit() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Matt");
var profit = SpreadsheetApp.getActiveSheet().getRange('O2').getValue();
sheet.appendRow([,,,profit ]);
}
您好,我正在尝试使用 appendrow 将我的变量放入 D 行的最后一个空白单元格,但是 appendRow 执行的是 entre 行,而不仅仅是 D 列。我希望将“利润”附加到第 362 行而不是行363 ->在此处查看示例 谢谢!
解决方案
您可以使用此示例代码获取 D 列的最后一行:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Matt");
var profit = SpreadsheetApp.getActiveSheet().getRange('O2').getValue();
var colValues = sheet.getRange("D1:D").getValues();
var count = colValues.filter(String).length
sheet.getRange(count+1,4).setValue(profit);
它能做什么?
- 使用获取所有列 D 值
sheet.getRange("D1:D").getValues()
- 使用字符串值过滤数组并获取其长度/计数。空单元格将不计算在内。
- 将 D 列计数增加 1 并使用Sheet.getRange(row,column)获取 D 列中非空单元格下方的单元格。使用Range.setValue(value)设置单元格值。
样本输出:
笔记:
这只有在 D 列中没有空行的情况下才有效。
如果 D 列中有空行,则在增加计数时可能需要添加更多偏移量。
例子:
- 我有 2 个空标题行(第 1 行和第 2 行)。因此,行数的偏移量应该是+3。
示例代码:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Matt");
var profit = SpreadsheetApp.getActiveSheet().getRange('O2').getValue();
var colValues = sheet.getRange("D1:D").getValues();
var count = colValues.filter(String).length
sheet.getRange(count+3,4).setValue(profit);
推荐阅读
- richtextbox - 使用 Aspose.Words 进行邮件合并后,嵌入在富文本字段中的图像不会显示
- loadrunner - 如何在loadrunner中检查一个数字是奇数还是偶数
- vb.net - VB.NET DataGrid 不显示数据库中的第一行数据
- continuous-integration - 应用程序包上传失败并出现错误:EISDIR:对目录的非法操作(Elastic Beanstalk 部署 VSTS)
- javascript - 将重复的 JSON 对象放入数组中
- python - 追加重新排列 json.values() 如果为空则将其作为空列表
- php - 过滤数组以包含包含特定单词的所有字符串并检查是否有任何字符串匹配
- javascript - 数据表的省略号渲染
- docker - nvidia-cuda docker 容器操作系统,不同于主机
- asp.net-mvc-4 - MVC4 AllowHtml 不适用于字典