2011-09-07 9 views
6

No puedo insertar un encabezado (o cualquier información normal) en una hoja de cálculo recién creada a través de la API de Java. La manera estándar para insertar datos es proporcionarAgregar encabezado a través de la API de la hoja de cálculo de Google

newEntry.getCustomElements().setValueLocal(header, value2); 

Esta pregunta similar a esta publicado en stackoverflow una cabecera y un valor, por ejemplo:

How to add header in Google spreadsheet

la respuesta sugerida era intentar alimentación basada en células uso a diferencia de la lista basada en el ejemplo anterior. No he podido hacer esto ya que cualquier consulta sobre celdas o intentos de obtener el feed de celda parece devolver 0 ya que no hay datos en ninguna celda para devolver ... al menos esto es lo que creo que está sucediendo ...

por ej.

public void getCells(){ 
     cellFeedUrl = worksheetEntry.getCellFeedUrl(); 
     CellFeed feed; 
     try { 
      feed = spreadSheetService.getFeed(cellFeedUrl, CellFeed.class); 

     for (CellEntry cell : feed.getEntries()) { 
      System.out.println(worksheetEntry.getTitle().getPlainText()); 
      String shortId = cell.getId().substring(cell.getId().lastIndexOf('/') + 1); 
      System.out.println(" -- Cell(" + shortId + "/" + cell.getTitle().getPlainText() 
       + ") formula(" + cell.getCell().getInputValue() + ") numeric(" 
       + cell.getCell().getNumericValue() + ") value(" 
       + cell.getCell().getValue() + ")"); 
     } 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (ServiceException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

and 

public void queryHeader(){ 

    CellQuery query = new CellQuery(cellFeedUrl); 
    query.setMinimumRow(1); 
    query.setMaximumRow(1); 
    query.setMinimumCol(1); 
    query.setMaximumCol(1); 
    try { 
     CellFeed feed = spreadSheetService.query(query, CellFeed.class); 

     List<CellEntry> entries = feed.getEntries(); 

     for(CellEntry cell : entries){ 

      cell.changeInputValueLocal("new"); 
     } 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ServiceException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

Respuesta

4

Su sospecha sobre las células vacías no devolvió es correcta. Puede anular esta configuración predeterminada agregando la siguiente línea:

query.setReturnEmpty(true);

Cuestiones relacionadas