0

将 Google Sheets V4 文档映射到 SDK 方法非常困难。例如:

要将一行附加到电子表格,文档说明有一个请求资源,例如

"appendCells": {
    object(AppendCellsRequest)
  },

AppendCellsRequest 在哪里

{
  "sheetId": number,
  "rows": [
    {
      object(RowData)
    }
  ],
  "fields": string,
}

但是,如果我按如下方式使用 SDK:

    let range = "Sheet1"
    let url = String(format:"%@/%@/values/%@", baseUrl, spreadsheetId, range)
    let params = ["valueInputOption":"RAW"]
    let fullUrl = GTLUtilities.URLWithString(url, queryParameters: params)

    let body = GTLObject()

    body.JSON = [ "appendCells" : [
                        "sheetId" : 0,
                        "rows"    : [[value, value, value, value]],
                        "fields"  : "*"
                     ]]

    driveService.fetchObjectByUpdatingObject(body, forURL: fullUrl, completionHandler: {
            (ticket:GTLServiceTicket!, object:AnyObject!, error:NSError!) in

    })

这失败并出现错误:

"Invalid JSON payload received. Unknown name "append_cells" at 'data': Cannot find field."
4

1 回答 1

0

您似乎调用了错误的 URL。您的 URL 构造为:

let url = String(format:"%@/%@/values/%@", baseUrl, spreadsheetId, range)

这将导致:

http://sheets.googleapis.com/spreadsheets/{spreadsheet_id}/values/{range}

...但是您正在尝试使用值集合不支持的 AppendCellsRequest 对象。链接中的每个 Request 对象都描述了一个属于batchUpdate 调用的请求正文的对象。有关详细信息,请参阅更新电子表格指南。

于 2016-06-07T19:09:51.677 回答