SmartSheet Java API getSheet 但只有部分行

SmartSheet Java API getSheet but only some of the rows

我在公司内部使用的应用程序中使用 SmartSheet API(Java SDK),发现应用程序的初始启动时间越来越长.我得出的结论是,至少部分延迟是从 SmartSheet 获取整个 sheet,然后过滤掉我之前处理过的所有行。有没有办法让我得到除我已经处理过的那些行之外的所有内容?我在 SmartSheet 中有一个 "store number" 列,可以输入我已经处理过的商店列表来过滤列表。

但据我所知,没有办法做到这一点。我错了吗?如果是这样,我该怎么做?

我找到了 SmartShet API docs,但是他们没有清楚地解释如何使用 includes 和 excludes 可选参数。我能找到的所有 SmartSheet 示例都将这两个值设置为空。我希望 excludes 能给我一种方法来排除我知道我已经处理过的行,但我找不到关于如何使用此功能的明确文档。

遗憾的是,无法像查询数据库中的 table 那样使用 Smartsheet API 查询 sheet 数据——也就是说,没有 API 请求您可以发布功能类似于 SELECT * FROM Sheet WHERE store_number NOT IN (1, 3, 5).

通常,includeexclude 参数提供了一种使响应更大的方法(即,使用 include 参数比 return 更多的数据通常是 return 默认情况下)或更小(即,使用 exclude 参数 而不是 return 通常是 return 默认情况下)。例如,默认情况下不会包含附件元数据——但如果您在请求中指定 ?include=attachments 参数,它将包含在内。

指定 exclude=filteredOutRows 参数可让您影响在响应中 return 编辑了哪些行——但要使此参数满足您所描述的场景,sheet当前必须应用过滤器,过滤掉您不想 returned 的行。在您的场景中这是否属实似乎值得怀疑(并且似乎不可能通过 API 以编程方式 set/update sheet 过滤器),因此这对您来说似乎不是特别有用。

** 更新以添加有关报告的信息 **

您可能会考虑另一种选择。您可以手动创建一个查询 sheet 的报告(即通过 Smartsheet UI),并为该报告指定标准,从报告结果中排除指定的一组商店编号.然后您可以更改您的应用程序,使其 gets data via the Report 而不是直接从 Sheet 获取数据。这里唯一的问题是无法通过 Smartsheet API 创建或更新报告——因此您必须手动创建报告(通过 Smartsheet UI),然后定期手动更新报告(通过 Smartsheet UI)以添加要从结果中排除的其他商店编号。不理想,但取决于您尝试从响应中排除的数据量,以及要排除的商店编号集更改的频率,这种方法可能对您可行。