gpt4 book ai didi

ruby - Google Spreadsheet API 返回网格限制错误

转载 作者:行者123 更新时间:2023-12-05 08:18:42 27 4
gpt4 key购买 nike

我正在尝试使用 Ruby API(它只是 SheetsV4 API 的包装器)更新 Google 表格

我遇到了以下错误

Google::Apis::ClientError: badRequest: Range ('MySheet'!AA1) exceeds grid limits. Max rows: 1000, max columns: 26

我找到了这个问题的引用资料 on the google forum ,但是除了使用不同的方法写入电子表格之外,似乎没有解决问题的方法。

问题是,我需要复制一个现有的电子表格模板,并在各种工作表中输入我的原始数据。到目前为止,我一直在使用这段代码(其中 service 是 Ruby SheetsV4 API 的客户端)

def write_table(values, sheet: 'Sheet1', column: 1, row: 1, range: nil, value_input_option: 'RAW')
google_range = begin
if range
"#{sheet}!#{range}"
elsif column && row
"#{sheet}!#{integer_to_A1_notation(column)}#{row}"
end
end
value_range_object = ::Google::Apis::SheetsV4::ValueRange.new(
range: google_range, values: values
)
service.update_spreadsheet_value(spreadsheet_id,
google_range,
value_range_object,
value_input_option: value_input_option
)
end

到目前为止,它运行良好,但在向我的摘录中添加更多数据后,我浏览了第 26 列(从 AA 列开始),现在我收到了错误。

是否有一些选项可以传递给 update_spreadsheet_value 以便我们提高这个限制?

否则,使用 append 写入电子表格的另一种方法是什么?

编辑 - 对我的场景的清晰描述

我有一个包含 8 个工作表(选项卡)的 Google 电子表格模板,其中 4 个标题为 RAW-XX,这是我尝试更新数据的地方。

一开始,那些原始标签只有 30 列标题 (A1 --> AD1)我的代码需要能够填充所有单元格 A2 --> AD42

  • (1) 第一次
  • (2) 并且我的代码需要能够再次重新运行以用新值替换这些值,而无需附加

基本上,由于要求 (2),我正在考虑使用 update_spreadsheet_value 而不是 append_xx。但是由于 API 中的这个错误/限制(不清楚),这是行不通的。同样重要的是要注意:我实际上并不是一次更新所有这 30 列,而是多次调用 update 方法(每次最多 10 列)

我是这么想的- 也许我缺少发送到 Google API 的选项以允许一次超过 26 列?- 也许这实际上是 update API 的一个未记录的硬限制- 也许我可以求助于删除现有数据 + 使用追加

编辑 2

假设我有一个包含多个工作表的版本 1 模板(请注意,我使用 =xx 表示公式,使用 [empty] 表示没有任何内容在单元格中,1 表示提供了原始值“1”

Sheet1 - RAW
RAW Number of foos | RAW Number of Bars |
[empty] | [empty] |

Sheet2 - FORMATTED
Number of foos | Number of Bars
='Sheet1 - RAW'!A2 | ='Sheet1 - RAW'B2

现在我“第一次”调用我的应用程序,这会将现有模板复制到新文件“generated_spreadsheet”并在 RAW 表中注入(inject)数据。结果此时,我的应用程序说有 1 个 foo 和 0 个 bar

Sheet1 - RAW
RAW Number of foos | RAW Number of Bars |
1 | 0 |

Sheet2 - FORMATTED
Number of foos | Number of Bars
='Sheet1 - RAW'!A2 | ='Sheet1 - RAW'!B2

也许如果我稍后调用我的应用程序,模板和数据之间可能发生了变化,所以我想替换“generated_spreadsheet”中的所有内容

新模板变成了中间

Sheet1 - RAW
RAW Number of foos | RAW Number of Bars |
[empty] | [empty] |

Sheet2 - FORMATTED
Number of foos | Number of Bars | All items
='Sheet1 - RAW'!A2 | ='Sheet1 - RAW'!B2 | =A2 + B2

假设现在我的应用程序显示仍然有 1 个 foo,并且条形图的数量从 0 变为 2,我想更新“generated_spreadsheet”,使其看起来像

Sheet1 - RAW
RAW Number of foos | RAW Number of Bars |
1 | 3 |

Sheet2 - FORMATTED
Number of foos | Number of Bars | All items
='Sheet1 - RAW'!A2 | ='Sheet1 - RAW'!B2 | =A2 + B2

最佳答案

使用 values.append 怎么样?在我的环境中,我也遇到了与您相同的情况。为了避免这个问题,我使用了 values.append。

请修改如下,然后重试。

来自:

service.update_spreadsheet_value(

收件人:

service.append_spreadsheet_value(

引用:

如果这不是你想要的结果,我很抱歉。

关于ruby - Google Spreadsheet API 返回网格限制错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53614276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com