如何解决使用Google Sheets API从Google Sheets调用背景色缺少数据
从链接到此处(Previous Question的上一个问题开始,我了解了Sheets.SpreadSheets.get,它调用了工作表数据的JSON,这将使我能够在项目中获取工作表的背景色。 Id以前使用var BackgroundColors = ActiveWeekSheet.getDataRange().getBackgrounds();
进行此操作,但被告知JSON方法将是一种更快的读/写方法。他们指示我对Javascript对象进行一些阅读,但之后我仍然感到困惑。
我有以下代码。 TestArray = Sheets.Spreadsheets.get("1irmcO8yMxYwkcLaxZd1cN8XsTIhpzI98If_Cxgp1vF8");
似乎使用工作表特定的数据调用JSON。 TestArray
的记录器语句返回以下内容:testArrayObject: {"properties":{"gridProperties":{"rowCount":1000,"columnCount":26},"sheetType":"GRID","index":0,"sheetId":0,"title":"Awesome"}}
社区成员先前建议我在以下位置找到背景颜色:sheets[].data[].rowData[].values[].cellData.effectiveFormat.backgroundColor
我已经用黄色突出显示了一个单元格,但是在查看上述JSON时,我似乎找不到任何引用颜色的内容。绝对没有JSON的多层次结构可以引用工作表->数据->行数据->值-> celldata.effectiveFormat.backgroundColor。
我在这里想念什么?我需要格式化吗?我不是在调用正确的JSON开头吗?
谢谢!
解决方法
如documentation所述,
默认情况下,不会返回网格内的数据。您可以采用以下两种方式之一来包含网格数据:
- 使用HTTP中的字段URL参数指定列出您所需字段的字段掩码
Sheets.Spreadsheets.get(spreadsheetId,{
ranges:"Sheet1!A1:A5",fields:"sheets(data(rowData(values(effectiveFormat.backgroundColor))))"
})
- 将includeGridData URL参数设置为true。如果设置了字段掩码,则会忽略includeGridData参数
Sheets.Spreadsheets.get(spreadsheetId,includeGridData: true
})
简而言之,
- 多个不同的字段用逗号分隔,并且
- 子字段以点分隔。
- 为方便起见,可以在括号内列出同一类型的多个子字段。
- 您可以测试API here
spreadsheets.get method中有一些可选参数可以为您提供这些数据,但是您需要明确地包括它们:
-
ranges
–要从电子表格中检索的范围。 -
includeGridData
–指定范围内的单元格数据。
这仅指定一个单元格的范围(Sheet1中的A1),但是您可以指定更大的范围,并在需要时浏览数组。
var TestArray = Sheets.Spreadsheets.get(SS_ID,{ranges: "Sheet1!A1",includeGridData: true});
请务必记住,这会返回一个Color object的RGBA,这一点非常重要 值范围为0-1,但其他应用程序脚本使用hex color或conventional 0-255 RGB值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。