如何使用 Google 脚本将数据添加到 Google 工作表中的特定行

How to add data to a specific row in Google Sheets using Google Script

在我的 Google Sheet 中,我在名为 colorRow 的变量中有索引。我只是想向 sheet 中的该行添加一些数据,但数据一直在页面下方的其他行中。我究竟做错了什么?

var data = [];
// Some more fields in data array
data.push("Final Submission Date: " + new Date());
// target_sheet.insertRowAfter(colorRow); // Tried this didn't work
target_sheet.appendRow(data);

我需要想出一些方法来重置追加计数器,以便我可以将它设置为行 {colorRow} 或者如果有一种方法可以添加到特定行,可能像

target_sheet.addAt(7, data)

像这样的东西是理想的。

您不能使用 appendRow 做您想做的事。您正在使用:

target_sheet.appendRow(data);

您需要使用setValues()

target_sheet(start row, start column, number of rows, number of columns).setValues(data);

在您的情况下,如果您想覆盖(编辑)现有行,则需要找到其中包含索引的行,并将该编号用于 start row 参数。

var data, dataAs1D,dataFromCol1,ouss, target_sheet, lastRow,rowToEdit;

ss = SpreadsheetApp.getActiveSpreadsheet();
target_sheet = ss.getSheetByName('name');

lastRow = target_sheet.getLastRow();

dataFromCol1 = target_sheet.getRange(1,1,lastRow,1).getValues();//Get all col A values
dataAs1D = dataFromCol1.toString().split(",");//Convert 2D array to 1D

rowToEdit = colorRow;//

data = ['one','two','three'];
outerArray = [];//Assign empty array to variable name
outerArray.push(data);
target_sheet.getRange(rowToEdit,1,data[0].length,data.length).setValues(data);

此示例假定您的索引号位于第一列。

你可以用这个。解决了我的问题。

var rows = spreadsheet.getRange('A1:b2').activate()

var myData = []
myData[0] = []
myData[0].push(Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy"))
myData[0].push("Fake valeu 1")
myData[1] = []
myData[1].push("Fake valeu 2")
myData[1].push("Fake valeu 3")
    
rows.setValues(myData)