首页 > 解决方案 > google sheet api v4 在特定行之后附加行或将行移动到特定位置

问题描述

是否可以在特定行/范围之后附加一行?
例如,我有一个有 5 行的电子表格,其中 A 列中的第一行是“1”,第二行是“2”,第三行是“4”,依此类推,直到第五行“6”。

现在我想在这个表中追加一行,我目前使用这个函数:

let values = [
  [
    // Cell values ...
  ],
  // Additional rows ...
];
let resource = {
  values,
};
this.sheetsService.spreadsheets.values.append({
  spreadsheetId,
  range,
  valueInputOption,
  resource,
}, (err, result) => {
  if (err) {
    // Handle error.
    console.log(err);
  } else {
    console.log(`${result.updates.updatedCells} cells appended.`);
  }
});

我要附加的行在 A 列中有“3”,我希望在第二行之后附加该行。

但是当我将范围设置为“A2:C2”时,它只会将它附加到第一个空行所在的位置;第五排之后。

有没有办法在行之间追加行?如果没有,是否可以将附加的行从底部移动到所需位置?

PS:我不想按字母或数字对行进行排序。我只是用数字来说明我的意思。

标签: node.jsgoogle-apps-scriptgoogle-sheetsgoogle-sheets-api

解决方案


您必须先在其间插入一行,然后再插入该行update中的值或append. 您可以尝试InsertRangeRequestInsertDimension

片段:

this.sheetsService.spreadsheets.batchUpdate({
  spreadsheetId,
  resource: { 
    requests: [{
     "insertRange": {
        "range": {//Sheet1!A3
          "sheetId": 0,
          "startRowIndex": 2,
          "endRowIndex": 3,
          "startColumnIndex": 0,
          "endColumnIndex": 1
         },
        "shiftDimension": "ROWS"
      }
    }]
  }
},(err,res)=>console.log(err ? err : res))

推荐阅读