在Swift中更改Google工作表中单元格的背景色

xdnvmnnf  于 2023-03-22  发布在  Swift
关注(0)|答案(1)|浏览(131)

我试图在iOS(swift)中更改Google Sheets单元格的背景色,但找不到任何文档。
我在github上发现了一个项目,它允许你改变一个值,它可以正常工作。
这是密码:

@IBAction func write() {
        let range = "B2"
        let valueRange = GTLRSheets_ValueRange(json: [
            "majorDimension": "ROWS",
            "range": range,
            "values": [
                [
                    10,
                ],
            ],
        ])

        let query = GTLRSheetsQuery_SpreadsheetsValuesUpdate.query(withObject: valueRange, spreadsheetId: Globals.shared.YOUR_SHEET_ID, range: range)
        query.valueInputOption = "USER_ENTERED"
        query.includeValuesInResponse = true

        Globals.shared.sheetService.executeQuery(query) { (_: GTLRServiceTicket, result: Any?, error: Error?) in
            if let error = error {
                print("Error", error.localizedDescription)
                self.view.makeToast(error.localizedDescription)
            } else {
                let data = result as? GTLRSheets_UpdateValuesResponse
                let rows = data?.updatedData?.values as? [[String]] ?? [[""]]
                for row in rows {
                    print("row: ", row)
                    self.view.makeToast("value \(row.first ?? "") wrote in \(range)")
                }
                print("success")
            }
        }
    }

但是我不知道怎么改变背景颜色。
有什么提示吗?谢谢

mefy6pfw

mefy6pfw1#

找到了答案:

@IBAction func setBackgroundColor() {
    let sheetId = Globals.shared.YOUR_SHEET_ID
    let color = GTLRSheets_Color() 
    color.red = 0 
    color.green = 1
    color.blue = 0 
    color.alpha = 1

    let cellFormat = GTLRSheets_CellFormat()
    cellFormat.backgroundColor = color

    let updateCellsRequest = GTLRSheets_UpdateCellsRequest()
    updateCellsRequest.fields = "userEnteredFormat.backgroundColor"
    updateCellsRequest.start = GTLRSheets_GridCoordinate(json: [
        "columnIndex": 1,
        "rowIndex": 1,
        "sheetId": mySheetId,
    ])
    
    

    updateCellsRequest.rows = [GTLRSheets_RowData()]
    updateCellsRequest.rows![0].values = [GTLRSheets_CellData()]
    updateCellsRequest.rows![0].values![0].userEnteredFormat = cellFormat

    let batchUpdateRequest = GTLRSheets_BatchUpdateSpreadsheetRequest()
    batchUpdateRequest.requests = [GTLRSheets_Request()]
    batchUpdateRequest.requests![0].updateCells = updateCellsRequest

    let query = GTLRSheetsQuery_SpreadsheetsBatchUpdate.query(withObject: batchUpdateRequest, spreadsheetId: sheetId)
    Globals.shared.sheetService.executeQuery(query) { (_, result, error) in
        if let error = error {
            print("Error", error.localizedDescription)
            self.view.makeToast(error.localizedDescription)
        } else {
            print("success")
        }
    }
}

相关问题