如何使用nodejs和api解冻谷歌表格

问题描述 投票:0回答:1

我被一个想要更新的 gsheets 困住了,因为有一些行和列被冻结。

我正在使用

google-spreadsheet
npm 包,但其中没有任何内容可以显式解冻工作表。

我发现了这个:

await worksheet.updateProperties({
  gridProperties: {
    frozenColumnCount: 0,
    frozenRowCount: 0,
  }
});

这是“简写”

await worksheet.updateGridProperties({
  frozenColumnCount: 0,
  frozenRowCount: 0,
});

但是在这两种情况下,它仍然说我无法删除冻结的行。

node.js google-sheets google-api google-sheets-api
1个回答
0
投票

我认为对于

gridProperties
updateSheetProperties
来说,当你想使用
frozenColumnCount
frozenRowCount
时,需要将
fields
设置为
gridProperties(frozenColumnCount,frozenRowCount)
gridProperties.frozenColumnCount,gridProperties.frozenRowCount

但是,当我看到google-spreadsheet的原始脚本时,只有

gridProperties
用作
fields
的值。 Ref 在这种情况下,除了
frozenColumnCount
frozenRowCount
之外的所有属性都会重置。我猜这就是你当前问题
it still say that i can't delete row frozen.
的原因。

不幸的是,我无法知道这种情况是否是作者预期的情况。因此,在这个答案中,我想提出使用当前规范的修改脚本。

修改后的脚本:

await worksheet.updateGridProperties({
  frozenColumnCount: 0,
  frozenRowCount: 0,
  ...worksheet.gridProperties,
});
  • 这样就消除了像
     You can't delete all the rows on the sheet.
    这样的错误。但是,当我确认
    worksheet.gridProperties
    时,仅检索到
    rowCount
    columnCount
    的 2 个属性。因此,在本例中,使用了
    frozenColumnCount
    frozenRowCount
    rowCount
    columnCount
    4 个属性。但是,对于
    gridProperties
    ,有 7 个属性。 Ref 因此,其他 3 个属性被重置。因此,如果在您的实际电子表格中,当
    hideGridlines
    rowGroupControlAfter
    columnGroupControlAfter
    的属性发生更改时,请将它们包含在上述对象中。这样,请求就会以
    fields
    的值为
    gridProperties
    运行。

注:

  • 我不确定这是否是当前规范或 google-spreadsheet 的错误。如果用户想要设置特定属性,我想更新 google-spreadsheet 的脚本以手动给出字段或更新 getFieldMask 的脚本可能会更好。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.