Highcharts:从谷歌表格取数时startRow与endRow失效如何解决?
问题原因
谷歌表格API更新后,startRow、endRow参数仅在未显式指定googleSpreadsheetRange时生效,只要配置了自定义范围参数,旧的行过滤参数会被直接覆盖,不会生效。而你传入两个离散范围的写法,多数前端图表库(包括你使用的Google Charts)不支持多段离散范围的自动合并,只会识别第一个范围或者直接忽略范围配置,因此无法生效。
可行解决方案
- 方案1:使用
googleSpreadsheetQuery参数过滤行,保留表头
不需要拆分多个范围,直接把全表对应列范围传入googleSpreadsheetRange,再通过查询参数过滤你需要的行,同时保留第一行作为表头,配置示例:
googleSpreadsheetRange: "Gesamt!A:C", googleSpreadsheetQuery: "SELECT * WHERE (ROW() = 1 OR (ROW() >=32 AND ROW() <=35))",
该写法会自动保留第一行表头,同时只返回32-35行的对应数据,完全匹配你的需求。
方案2:手动合并表头和目标行数据(兼容不支持QUERY参数的场景)
如果你的图表库不支持QUERY参数,你可以分两次拉取数据,第一次拉取表头Gesamt!A1:C1,第二次拉取目标行Gesamt!A32:C35,手动把两个返回的数组合并后再传入图表渲染即可,不需要依赖API内置的参数处理。方案3:如果你一定要用
startRow、endRow参数,直接删除googleSpreadsheetRange配置
只要你没有指定自定义范围,startRow、endRow参数会恢复生效,同时可以额外配置headerRows:1参数指定第一行为表头,适配你的需求。
内容的提问来源于stack exchange,提问作者Michel Penke
相关产品推荐
相关产品推荐

