0

Je travaille sur un contrôleur de vue où l'utilisateur doit supprimer une ligne d'une feuille dans une feuille de calcul qui se trouve dans Google Drive. Une fois que l'utilisateur s'est connecté avec succès, une vue de table s'affiche et l'utilisateur peut supprimer la ligne en la balayant vers la gauche sur la cellule appropriée. Le code ci-dessous montre le processus de suppression. Lorsque je déclenche le processus, l'erreur suivante apparaît:Supprimer la plage ne fonctionne pas - API Google Sheets - Swift

"demandes non valides [0] .deleteRange: Pas de grille avec id: 0"

//Delete Function TableView - Access by swiping left. 
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) 
{ 
    //1 - Delete Row From Index 
    let toDelete = GTLRSheets_DeleteRangeRequest.init() 
    toDelete.range?.sheetId = 317088521 
    toDelete.range?.startRowIndex = 6 
    toDelete.range?.endRowIndex = 6 
    toDelete.range?.startColumnIndex = 0 
    toDelete.range?.endColumnIndex = 3 
    toDelete.shiftDimension = "ROWS" 

    let batchUpdate = GTLRSheets_BatchUpdateSpreadsheetRequest.init() 
    let request = GTLRSheets_Request.init() 
    request.deleteRange = toDelete 
    batchUpdate.requests = [request] 

    let deleteQuery = GTLRSheetsQuery_SpreadsheetsBatchUpdate.query(withObject: batchUpdate, spreadsheetId: spreadsheetID) 
    service.executeQuery(deleteQuery, delegate: self, didFinish: #selector(deleteFromIndexWithTicket(ticket:finishedWithObject:error:))) 
} 

func deleteFromIndexWithTicket(ticket: GTLRServiceTicket, finishedWithObject result : GTLRSheets_BatchGetValuesResponse , error : NSError?) { 
    if let error = error { 
     print(error.localizedDescription) 
     return 
    } 

    print("Deleted from index") 
} 

Répondre

0

Mon mal ... je n'avais pas initialisées le GridRange . Voici le code de travail.

 //1 - Delete Row From Index 
    let toDelete = GTLRSheets_DeleteRangeRequest.init() 
    let gridRange = GTLRSheets_GridRange.init() 
    toDelete.range = gridRange 
    gridRange.sheetId = indexID as NSNumber 
    gridRange.startRowIndex = lengthTrainingDatabase - indexPath.row as NSNumber 
    gridRange.endRowIndex = lengthTrainingDatabase - indexPath.row + 1 as NSNumber 
    toDelete.shiftDimension = kGTLRSheets_DeleteRangeRequest_ShiftDimension_Rows