首页 > 解决方案 > 在 Swift 中写入 Google 表格

问题描述

我真的很困惑如何写入 Excel 表,这是公开的。到目前为止,我已经下载了 AlamofireGoogleAPIClientForREST cocoapods。所以我想知道,如果我想写信给工作表,我首先需要实现一个谷歌登录,还是我可以使用Alamofire发送数据。我非常迷茫,所以如果有人可以帮助我,那就太好了。

谷歌表:https ://docs.google.com/spreadsheets/d/1zJR0uk6Pb6BuxJihFyxwe4ipQdBY4E9FFR74geBj8p0/edit#gid=0

func makeAndSendRequest() {
    let baseUrl = "https://sheets.googleapis.com/v4/spreadsheets"
    let spreadsheetId = "1zJR0uk6Pb6BuxJihFyxwe4ipQdBY4E9FFR74geBj8p0"
    let params = ["valueInputOption": "RAW"]
    let range = "Studen!A3:B3"
    //need to add params
    let url = baseUrl + "/" + spreadsheetId + "/values/" + range + "/valueInputOption=RAW/"

    let fullUrl = URL(string: url)!

    //my values
    let requestParams = [
        "values": [
            1,
            2
        ]
    ]


    //my auth is after Bearer so "Bearer 901390"
    let header = ["Authorization":"Bearer "]
    let requestURL = "https://sheets.googleapis.com/v4/spreadsheets/\(spreadsheetId)/values/\(range)?valueInputOption=RAW"
    let req = Alamofire.request(requestURL, method: .put, parameters: requestParams, encoding: JSONEncoding.default,headers: header)
    req.responseJSON { response in debugPrint(response) }

}

标签: iosswiftxcodealamofiregoogle-sheets-api

解决方案


尝试先解决此问题。

valueInputOption是一个查询参数,见:https ://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update

您的 URL 至少应该是:

let url = baseUrl + "/" + spreadsheetId + "/values/" + range + "?valueInputOption=RAW"

接下来您需要修复您的请求正文,每个文档都需要范围:https ://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update

{ "range": "A3:B3", "values": [ [ 1, 2 ] ] }

此范围应与查询参数中的范围相同,例如Sheet1!:A3:B3查询参数中的范围。

请注意,它以工作表名称开头,不应为“studen”

我在同一页面上使用了 Playground 工具,并且能够调用 api 来更改电子表格中的数据。

最后我得到 200 响应代码和以下 json: { "spreadsheetId": "1zJR0uk6Pb6BuxJihFyxwe4ipQdBY4E9FFR74geBj8p0", "updatedRange": "Sheet1!A3:B3", "updatedRows": 1, "updatedColumns": 2, "updatedCells": 2 }

----- 编辑 ----- 正如你所问,API 需要 Oauth 令牌,实际上调用了处理这个的框架G Suite

请在此处找到指南: https ://developers.google.com/gsuite/guides/ios


推荐阅读