0

Lors de l'ajout ou de l'obtention d'une cellule, le requestBody est assez simple, mais lorsqu'il s'agit de mises à jour par lots, il semble que ce soit beaucoup plus compliqué.Comment ajouter des demandes dans Google Sheets

 List<Data.Request> requests = new List<Data.Request>(); // TODO: Update placeholder value. 

     Data.BatchUpdateSpreadsheetRequest requestBody = new Data.BatchUpdateSpreadsheetRequest(); 
     requestBody.Requests = requests; 

     SpreadsheetsResource.BatchUpdateRequest request = service.Spreadsheets.BatchUpdate(requestBody, spreadsheetId); 

     Data.BatchUpdateSpreadsheetResponse response = request.Execute(); 

En utilisant Google's Batch Update Examples, j'ai une base pour le code, mais je ne sais pas comment ajouter les demandes qui sont nécessaires à ce que je dois. Utilisation de l'explorateur API, je le requestBody correct:

{ "demandes": [{ "sortRange": { "range": { "sheetId": 0, "startRowIndex": 1} "sortSpecs" : [{ "sortOrder": "ASCENDING", "dimensionIndex": 0}]}}]}

donc j'ai essayé de faire quelque chose comme ceci:

requests.Add(new Request().SortRange.Range.SheetId = 0); 

mais il ne fonctionne pas façon.

Répondre

0

Essayez d'utiliser ce code à la place,

/* 
* BEFORE RUNNING: 
* --------------- 
* 1. If not already done, enable the Google Sheets API 
* and check the quota for your project at 
* https://console.developers.google.com/apis/api/sheets 
* 2. Install the Java client library on Maven or Gradle. Check installation 
* instructions at https://github.com/google/google-api-java-client. 
* On other build systems, you can add the jar files to your project from 
* https://developers.google.com/resources/api-libraries/download/sheets/v4/java 
*/ 

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; 
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; 
import com.google.api.client.http.HttpTransport; 
import com.google.api.client.json.JsonFactory; 
import com.google.api.client.json.jackson2.JacksonFactory; 
import com.google.api.services.sheets.v4.Sheets; 
import com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest; 
import com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetResponse; 
import com.google.api.services.sheets.v4.model.Request; 
import java.io.IOException; 
import java.security.GeneralSecurityException; 
import java.util.ArrayList; 
import java.util.List; 

public class SheetsExample { 
    public static void main(String args[]) throws IOException, GeneralSecurityException { 
    // The spreadsheet to apply the updates to. 
    String spreadsheetId = "my-spreadsheet-id"; // TODO: Update placeholder value. 

    // A list of updates to apply to the spreadsheet. 
    // Requests will be applied in the order they are specified. 
    // If any request is not valid, no requests will be applied. 
    List<Request> requests = new ArrayList<>(); // TODO: Update placeholder value. 

    // TODO: Assign values to desired fields of `requestBody`: 
    BatchUpdateSpreadsheetRequest requestBody = new BatchUpdateSpreadsheetRequest(); 
    requestBody.setRequests(requests); 

    Sheets sheetsService = createSheetsService(); 
    Sheets.Spreadsheets.BatchUpdate request = 
     sheetsService.spreadsheets().batchUpdate(spreadsheetId, requestBody); 

    BatchUpdateSpreadsheetResponse response = request.execute(); 

    // TODO: Change code below to process the `response` object: 
    System.out.println(response); 
    } 

    public static Sheets createSheetsService() throws IOException, GeneralSecurityException { 
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); 
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); 

    // TODO: Change placeholder below to generate authentication credentials. See 
    // https://developers.google.com/sheets/quickstart/java#step_3_set_up_the_sample 
    // 
    // Authorize using one of the following scopes: 
    // "https://www.googleapis.com/auth/drive" 
    // "https://www.googleapis.com/auth/drive.file" 
    // "https://www.googleapis.com/auth/spreadsheets" 
    GoogleCredential credential = null; 

    return new Sheets.Builder(httpTransport, jsonFactory, credential) 
     .setApplicationName("Google-SheetsSample/0.1") 
     .build(); 
    } 
} 

Je l'ai de here. Peut-être que ce site pourrait aussi aider à comprendre les paramètres.

Vous pouvez également consulter ce poste connexe: Google Sheets SortSpecs