google-apps-script - Insert Multi Row Script Google Sheet
问题描述
I have written a google sheet script for addding single row code below:
//input values
function SubmitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formS = ss.getSheetByName("Entry"); // entry sheet
var dataS = ss.getSheetByName("Data"); // data sheet
var values = [[ formS.getRange("B4").getValue(),
formS.getRange("C4").getValue(),
formS.getRange("D4").getValue(),
formS.getRange("E4").getValue(),
formS.getRange("F4").getValue(),
formS.getRange("G4").getValue(),
formS.getRange("H4").getValue(),
formS.getRange("I4").getValue(),
formS.getRange("J4").getValue(),
formS.getRange("K4").getValue()]];
dataS.getRange(dataS.getLastRow()+1,2,1,10).setValues(values);
}
But I want to add multi-row if B5 or C5 data exist.
解决方案
这样做,您需要通过复制第一行同一列中的值来迭代行并“修补”缺失值。尝试这个:
function copyEntriesToDataSheet() {
const ss = SpreadsheetApp.getActive();
const [firstRow, ...furtherRows] = ss.getRange('Entry!A4:K').getValues();
const targetSheet = ss.getSheetByName('Data');
targetSheet.appendRow(firstRow);
furtherRows.forEach(row => {
if (row.join('')) {
targetSheet.appendRow(row.map((value, index) => String(value) ? value : firstRow[index]));
}
});
}
学习 Google Apps 脚本的一些最佳资源包括初学者指南、 新 Apps 脚本编辑器指南、Google Sheets 代码实验室的 Apps 脚本基础、 扩展 Google 表格页面、 javascript.info 和 Mozilla 开发者网络。
推荐阅读
- arrays - 将pyspark中的复杂数据读入数据框
- go - 交叉编译时,Golang 无法在 x86_64 机器上链接 aarch64/arm64 二进制文件
- postgresql - Docker postgreSQL entrypoint-initdb.d 选择数据库
- python - 如何在 matplotlib 网格的特定单元格中着色?
- python - Python reverse listener using threading
- angular - Return a blob from an observable
- python - 如何在 django 模型方法中将连接函数作为参数传递
- postgresql - Postgres 更新行并在高竞争下返回原始数据
- azure - 从 azure blob 插入数据并根据 blob 的名称插入 Azure 数据工厂中的某个表
- r - 如何在r中获取时间序列中的特定日期