我正在使用Google Sheets客户端库将新行插入到电子表格中,然后在顶部行(但在标题行下方)中写入一些数据。
batchUpdate方法应该允许那些使用它的人以这样的方式组合操作:如果一个操作失败,其他操作也会失败。这在我的情况下是最好的,因为我不想在第2行插入数据,除非我已经成功地在第一行的顶部插入了新行。
然而,我不太明白如何正确使用应用编程接口。结果是在顶部插入了一个新行,但我的数据点中只有一个正在写入第一个单元格,但不是行中的所有5个单元格。这里是API调用:
const sheets = google.sheets({ version: 'v4', auth });
sheets.spreadsheets.batchUpdate({
spreadsheetId: SHEET_ID,
"resource": {
"requests": [
{
"insertDimension": {
"range": {
"sheetId": 0,
"dimension": "ROWS",
"startIndex": 1,
"endIndex": 2
},
"inheritFromBefore": false
}
},
{
"updateCells": {
"rows":
{
values: [{
"userEnteredValue": {
stringValue: "Dec 14-Sep 20"
},
"userEnteredValue": {
numberValue: 10
},
"userEnteredValue": {
numberValue: 5
},
"userEnteredValue": {
numberValue: 1
},
"userEnteredValue": {
numberValue: 0.2
},
}]
}
,
"fields": "*",
// "start": {
// "sheetId": 0,
// "rowIndex": 1,
// "columnIndex": 4
// },
"range": {
"sheetId": 0,
"startRowIndex": 1, // I want to write to second row only
"endRowIndex": 2,
"startColumnIndex": 0, // start at first column
"endColumnIndex": 5 // end at 5th column
}
}
}
]
}
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
} else {
console.log('No data found.');
}
});
如您所见,我指定了一个范围,但是数据;具体来说,数据数组中的最后一个值0.2正在写入工作表中的第一列。我还尝试使用“开始”网格坐标而不是“范围”网格范围,但结果是一样的。
我需要修改什么才能将数据数组中的所有5个值写入工作表中,一次一行,一列?
问题不在开始或范围属性中;相反,问题是传递到rows数组的对象的格式不正确。
现在,谷歌确实让使用batchUpdate修改单元格的API变得相当复杂。首先,在UpdateCellsRequest的文档中,我们看到rows[]数组接受一个RowData对象。RowData是一个具有键“values”的对象,其中包含CellData对象数组,但每个CellData对象都必须包装在一组{}
中。
CellData对象由一个或多个属性组成,在本例中,我们选择“userEnteredValue”。它包含一个ExtendedValue对象,可以是number、string、bool、formula或error,它是这个复杂的嵌套对象系列中的最后一个。
上面代码的问题是,在文档中,row属性被标记为数组,但它实际上是一个包含数组的对象;因此,您错过了“row”后面的花括号。
以下是你应该拥有的:
{
"updateCells": {
"rows":
{
values: [
{
"userEnteredValue": {
stringValue: "Dec 14-Sep 20"
}
},
{
"userEnteredValue": {
numberValue: 10
}
},
{
"userEnteredValue": {
numberValue: 5
}
},
{
"userEnteredValue": {
numberValue: 1
}
},
{
"userEnteredValue": {
numberValue: 0.2
}
}
]
}
,
"fields": "*",
"range": {
"sheetId": 0,
"startRowIndex": 1,
"endRowIndex": 2,
"startColumnIndex": 0,
"endColumnIndex": 5
}
}
}
我有一个谷歌表单的问题。我最近创建了一个Google表单,允许人们留下反馈。但是,当人们填写表单时,我不希望Google表单上的新行插入下方,我希望该行插入顶部。 我已经尝试使用下面的代码,但是它不起作用。 新行仍然插入底部
问题内容: 我创建了一个数据库名称movielibrarysystem,其中有3个表。 分别是类型,发布者和电影...现在1个发布者可以有很多电影,而1个电影则有很多类型..在movie表中,发布者ID和typeid都充当外键。 我的问题是,如何在电影表中插入数据…我已经将数据插入到发行商和类型表中,但是我无法插入电影表中。 问题答案: 这就是你要做的。首先,发行人与电影之间的关系是一对多的-
问题内容: 我正在一个有两个秒和两个秒的项目上,当用户按下按钮时,第一个中的数据应该进入,第二个中的数据进入第二个。我的问题是,我不知道每次用户按下按钮时都如何放置数据,我知道如何插入数据,但是据我所知,这种方法只能工作一次。那么,每当用户按下按钮时,我可以使用哪种方法来更新? 问题答案: 单击按钮时,使用和插入新单元格。 首先将数据追加到tableview数组中 然后更新表格并插入新行 这将插入
我使用laravel firstOrNew方法插入数据。当数据不在表中时,它将插入数据。插入数据后,我无法获取上次插入的id。 前任:
我有这部分代码: 现在想返回插入或更新的数据作为响应,但是在谷歌上看到很多帖子后,所有尝试都失败了,我怎么能这样做?没有上次插入的id 但返回布尔值: 如何在雄辩的ORM laravel最后插入id 大多数主题想要返回,但我想要所有数据。
问题内容: 是否可以使用一个insert语句在一个表中插入多行?我知道如果发生以下情况,将会发生这种情况: 但是,如果我想插入: 只需一个插入命令? 问题答案: 两种解决方案(来源:http : //appsfr.free.fr/spip.php?article21): 或者