当前位置: 首页 > 知识库问答 >
问题:

Google Sheets API V4 Add Row.网的

佘修为
2023-03-14

谷歌留档页面说

Sheets API v4确实提供了可与电子表格一起使用的AppendCells请求。batchUpdate方法将一行数据附加到工作表中(并根据需要同时更新单元格属性和格式)。

即使创建RowData有效负载很繁琐,这也可以用于添加新行。但是,这不允许设置ValueInputOption。

谷歌也表示

但是,通常更容易确定要添加行的A1符号,然后发布电子表格。价值观更新请求以覆盖该行。在这种情况下,将覆盖指定行中的任何数据。

现在,这可以用于更新现有行上的数据,包括ValueInputOption。但是,当我使用它追加新行(即提供下一行的范围)时,服务器返回503错误。我一定错过了什么把戏?

共有2个答案

何向荣
2023-03-14

没有用于通过电子表格追加行的API。值集合(支持A1表示法的集合

浦毅
2023-03-14

我应该按照评论者的建议在我的问题中发布代码。然而,我把它作为这个答案的一部分,这显然是一个次优的解决方案,但符合我的目的。

这就是我最后使用的代码(省略OAuth和服务实例化)

 Public Function AddRows(Values As Object()()) As Boolean

        Try

            'Create dummy rows value payload
            Dim cell2add As New CellData
            Dim cellval As New ExtendedValue
            cellval.NumberValue = 0
            cell2add.UserEnteredValue = cellval
            Dim data2add As New RowData
            data2add.Values = {cell2add}

            Dim rowdataList As New List(Of RowData)
            For i = 0 To UBound(Values)
                rowdataList.Add(data2add)
            Next

            'Add a request to append to the sheet's data (expand grid)
            Dim appendRequest As New AppendCellsRequest
            appendRequest.SheetId = SheetID
            appendRequest.Rows = rowdataList.ToArray           
            appendRequest.Fields = "*"
            Dim request As New Request
            request.AppendCells = appendRequest

            'Execute the request
            Dim bRequest As New BatchUpdateSpreadsheetRequest
            bRequest.Requests = {request}
            Dim bResponse As BatchUpdateSpreadsheetResponse = Service.Spreadsheets.BatchUpdate(bRequest, DataBaseName).Execute()

            'Now update the newly added rows with data
            Dim index As Integer = GetRowCount() - Values.Length + 2 'GetRowCount() calls the service to get sheet metadata and returns the rows of data (excluding the headers)
            Dim vals As New ValueRange
            vals.Values = Values
            Dim urequest As SpreadsheetsResource.ValuesResource.UpdateRequest =
                Service.Spreadsheets.Values.Update(vals, DataBaseName, Name & "!A" & index)
            urequest.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED
            Dim response As UpdateValuesResponse = urequest.Execute
            Return response.UpdatedRows = Values.Length

        Catch ex As Exception
            Trace.WriteLine(Now.ToLongTimeString & ":" & ex.Message)
            Return False
        End Try

    End Function

简而言之,我调用AppEngEnter来扩展“网格”的大小,然后在创建的空白行中更新值。如果尝试更新新行的值,服务器将返回“服务不可用”错误。当我尝试更新现有行中的值(values.batchUpdate)并在同一请求中添加新行时,我发现了这个问题。在这种情况下,错误消息提到“超出网格”更新。

 类似资料:
  • 前几节介绍的LeNet、AlexNet和VGG在设计上的共同之处是:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。其中,AlexNet和VGG对LeNet的改进主要在于如何对这两个模块加宽(增加通道数)和加深。本节我们介绍网络中的网络(NiN)[1]。它提出了另外一个思路,即串联多个由卷积层和“全连接”层构成的小网络来构建一个深层网络。 NiN块 我们知道,卷积层

  • 问题内容: 我试图在我的JavaScript代码中调用此URL: http://api.addressify.com.au/address/autoComplete?api_key=99acd24a-1c94-49ad-b5ef-6f90d0f126b1&term=1+George+st+t&state=nsw&max_results=5 这是我的JavaScript代码: 我在控制台中遇到跨域U

  • 本文向大家介绍Docker网络上的用户定义网桥,包括了Docker网络上的用户定义网桥的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论为什么应该在默认桥网络上使用用户定义的桥网络。我们还将使用实际示例进行演示。 如果您使用用户定义的网桥进行容器网络连接,则该网络中的所有容器会自动将所有必需的端口公开给彼此,而不是公开给外部世界。这增加了容器之间的互操作性,并提供了更好的隔离性。 使用

  • 本文向大家介绍Docker主机网络与网桥网络,包括了Docker主机网络与网桥网络的使用技巧和注意事项,需要的朋友参考一下 可用于Docker网络的单主机网络有两种类型:“主机”和“桥”网络。单主机网络意味着它们的影响对于每个单独的主机都是局部的。 在主机网络的情况下,特定的Docker容器可以直接使用主机的网络来发送和接收数据包。对于网桥网络,它需要端口映射才能进行通信。 为了更好地理解它们,让

  • 问题内容: 基本安装nginx后,您的文件夹只有一个文件: 该文件夹如何工作,我将如何使用它托管多个(单独的)网站? 问题答案: 只需添加另一种方法,您就可以为托管的每个虚拟域或站点使用单独的文件。您可以将默认副本作为每个副本的起点,并为每个站点进行自定义。 然后在启用站点的站点中创建符号链接。这样,您可以通过添加或删除符号链接并发布服务nginx重新加载来访问站点。 在进行站点维护时,您可以发挥

  • 我有一个10.101的服务器VLAN。10.0/24,我的Docker主机是10.101。10.31. 如何在Docker主机(VM)上配置网桥网络,以便所有容器都可以直接连接到LAN网络,而无需在默认的172.17上重定向端口。0.0/16? 我尝试过搜索,但到目前为止我找到的所有howto都导致SSH会话丢失,我不得不从控制台进入VM以恢复我执行的步骤。

  • 本文向大家介绍互联网和内联网之间的区别,包括了互联网和内联网之间的区别的使用技巧和注意事项,需要的朋友参考一下 Internet和Intranet都与网络有关,如果着眼于两个词,则仅具有一个字母的区别。但是,除了这些注意事项之外,两者之间还有许多明显的区别,下面将进行讨论。 以下是Internet和Intranet之间的重要区别 序号 键 互联网 内联网 1 定义 互联网是互连的计算机网络的全球系

  • 我目前正在学习。NET核心,我正试图在ASP.NET核心MVC 3.1中使用身份框架进行用户管理。在< code >控制器中,我有一个< code > RoleManagerController ,带有< code>EditRole GET和POST,如下所示: 基于GET,我在文件夹中创建了一个名为的视图,如下所示: 这是我在中配置的内容.cs 但是当我尝试编辑角色并使用角色id访问路线时,页面