如何使用nodejs和API解冻Google表单

tvokkenx  于 5个月前  发布在  Node.js
关注(0)|答案(1)|浏览(50)

我被一个我想更新的gsheet卡住了,因为有一些行和列被冻结了。
我使用的是google-spreadsheet npm包,但其中没有明确解冻工作表的内容。
我发现了这个:

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

字符串
这是“速记”

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


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

iecba09b

iecba09b1#

我认为在updateSheetPropertiesgridProperties的情况下,当你想使用frozenColumnCountfrozenRowCount时,需要将fields设置为gridProperties(frozenColumnCount,frozenRowCount)gridProperties.frozenColumnCount,gridProperties.frozenRowCount
但是,当我看到google-spreadsheet的原始脚本时,只有gridProperties被用作fields的值。Ref在这种情况下,除了frozenColumnCountfrozenRowCount之外的所有属性都被重置。我猜这就是您当前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时,只检索到rowCountcolumnCount的2个属性。所以,在这种情况下,使用了frozenColumnCountfrozenRowCountrowCountcolumnCount的4个属性。但是,在gridProperties的情况下,有7个属性。Ref So,其他3个属性被重置。所以,如果在您的实际工作表中,当hideGridlinesrowGroupControlAftercolumnGroupControlAfter的属性被更改时,请将它们包含在上面的对象中。这样,请求将以fields的值作为gridProperties运行。

注意:

  • 我不知道这是当前的规范还是google-spreadsheet的bug。如果用户想设置特定的属性,我猜更新google-spreadsheet的脚本来手动提供字段或更新getFieldMask的脚本可能会更好。

参考:

  • GridProperties

相关问题