【问题标题】:Insert Multi Row Script Google Sheet插入多行脚本 Google 表格
【发布时间】:2021-05-01 05:24:35
【问题描述】:

我编写了一个 google sheet 脚本,用于在下面添加单行代码:
//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);  
}   

但如果存在 B5C5 数据,我想添加多行。

我在其中添加行数据的工作表:

我想要的数据表中的结果:

【问题讨论】:

    标签: google-apps-script google-sheets google-sheets-api


    【解决方案1】:

    这样做,您需要通过复制第一行同一列中的值来迭代行并“修补”缺失值。试试这个:

    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 脚本的一些最佳资源包括 Beginner's GuideNew Apps Script Editor guideFundamentals of Apps Script with Google Sheets 代码实验室、Extending Google Sheets pagejavascript.infoMozilla Developer Network

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 2022-12-11
      • 2020-12-29
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多