tutorial sheets sheet read google example java google-api google-spreadsheet-api

java - sheets - Insertar una fila en la hoja de cálculo de Google: las filas en blanco no se pueden escribir; use eliminar en su lugar



google spreadsheet api javascript (1)

No puedo agregar una fila a una hoja de cálculo existente. Estoy probando los pasos desde aquí: https://developers.google.com/google-apps/spreadsheets/data La siguiente línea arroja la excepción a continuación:

row = service.insert(listFeedUrl, row);

Excepción:

Exception in thread "main" com.google.gdata.util.InvalidEntryException: Bad Request Blank rows cannot be written; use delete instead. at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:602) at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564) at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560) at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538) at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536) at com.google.gdata.client.Service.insert(Service.java:1409) at com.google.gdata.client.GoogleService.insert(GoogleService.java:613) at TestGoogle.main(TestGoogle.java:93)

El resumen completo: el ejemplo anterior es bastante similar con el código de la aplicación que necesito corregir, y la aplicación funcionó hace algunas veces. Logré pasar la autenticación OAuth2.


La razón por la que recibe este mensaje de error es probablemente porque está intentando agregar a una hoja de cálculo en blanco y el encabezado no existe.

Si agregamos los encabezados primero, entonces debería funcionar.

Usando el ejemplo "Agregar una fila de lista" de la documentación que vinculó; agregue los encabezados de esta manera antes de agregar una fila de lista

CellQuery cellQuery = new CellQuery(worksheet.CellFeedLink); CellFeed cellFeed = service.Query(cellQuery); CellEntry cellEntry = new CellEntry(1, 1, "firstname"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 2, "lastname"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 3, "age"); cellFeed.Insert(cellEntry); cellEntry = new CellEntry(1, 4, "height"); cellFeed.Insert(cellEntry);

Entonces, el ejemplo de entrada de lista debería agregarse a la hoja de cálculo correctamente

// Fetch the list feed of the worksheet. ListQuery listQuery = new ListQuery(listFeedLink.HRef.ToString()); ListFeed listFeed = service.Query(listQuery); // Create a local representation of the new row. ListEntry row = new ListEntry(); row.Elements.Add(new ListEntry.Custom() { LocalName = "firstname", Value = "Joe" }); row.Elements.Add(new ListEntry.Custom() { LocalName = "lastname", Value = "Smith" }); row.Elements.Add(new ListEntry.Custom() { LocalName = "age", Value = "26" }); row.Elements.Add(new ListEntry.Custom() { LocalName = "height", Value = "176" }); // Send the new row to the API for insertion. service.Insert(listFeed, row);