2016-10-26 1 views
1

Grüßen,Wie Google Java Blatt API V4 zu formatieren Zellen als Nummer und Datum

Ich versuche, die Formatierung in meinem Google-Sheets hinzufügen mit der Java API V4 verwenden.

Der folgende Code ist mein bestes Verständnis davon, was erforderlich ist, um eine Reihe von Spalten und Zeilen vom Typ NUMBER mit einer einzigen ganzen Zahl zu formatieren. Außerdem gibt es eine Spalte mit einem DATE-Format. Der Code gibt keine Fehler zurück, ändert aber auch nicht die Formatierung auf meinem Blatt, so dass einfache numerische Werte und Datum einen störenden Apostroph vor jedem Wert wie '5 und' 26. Oktober 2016 13:34 haben. Ich habe versucht, die Felder zu formatieren, um den Apostroph zu entfernen, den das Blatt automatisch hinzufügt.

Irgendwelche Ideen, was ich falsch mache?

public static void setProperties(String spreadsheetId, int length) throws IOException { 


    List<Request> requests = new ArrayList<>(); 

    requests.add(new Request() 
      .setRepeatCell(new RepeatCellRequest() 
        .setCell(new CellData() 
          .setUserEnteredFormat(new CellFormat().setNumberFormat(new NumberFormat().setPattern("0").setType("NUMBER")))) 
        .setRange(new GridRange() 
          .setSheetId(0) 
          .setStartRowIndex(3) 
          .setEndRowIndex(2 + length) 
          .setStartColumnIndex(3) 
          .setEndColumnIndex(22)) 
        .setFields("userEnteredFormat.numberFormat") 
      )); 
    requests.add(new Request() 
      .setRepeatCell(new RepeatCellRequest() 
        .setCell(new CellData() 
          .setUserEnteredFormat(new CellFormat().setNumberFormat(new NumberFormat().setPattern("0").setType("NUMBER")))) 
        .setRange(new GridRange() 
          .setSheetId(0) 
          .setStartRowIndex(3) 
          .setEndRowIndex(2 + length) 
          .setStartColumnIndex(24) 
          .setEndColumnIndex(24)) 
        .setFields("userEnteredFormat.numberFormat") 
      )); 
    requests.add(new Request() 
      .setRepeatCell(new RepeatCellRequest() 
        .setCell(new CellData() 
          .setUserEnteredFormat(new CellFormat().setNumberFormat(new NumberFormat().setPattern("mmm dd yyyy hh+:mm").setType("DATE")))) 
        .setRange(new GridRange() 
          .setSheetId(0) 
          .setStartRowIndex(3) 
          .setEndRowIndex(2 + length) 
          .setStartColumnIndex(23) 
          .setEndColumnIndex(23)) 
        .setFields("userEnteredFormat.numberFormat") 
      )); 

    BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest() 
      .setRequests(requests); 
    SHEETS.spreadsheets().batchUpdate(spreadsheetId, batchUpdateRequest) 
      .execute(); 
} 




    <dependency> 
     <groupId>com.google.apis</groupId> 
     <artifactId>google-api-services-sheets</artifactId> 
     <version>v4-rev21-1.22.0</version> 
    </dependency> 

Danke, Conteh

+0

Sie sind sich nicht sicher, ob dies hilfreich ist, aber haben Sie das Datum und den Leitfaden [Zahlenformate] (https://developers.google.com/sheets/guides/formats) für die Google Tabellen-API überprüft? – noogui

+0

Ja, ich habe dieses Dokument bei der Entwicklung des Codes überprüft. Ich glaube, dass die Muster richtig sind. – conteh

Antwort

0

prüfen diese Frage Google Sheet API V4(Java) append Date in cells, wo ein ähnliches Problem gemeldet wird.

Zusätzlich habe ich Google Sheet API V3 und Google Sheet API V4 verwendet, dass Problem in v3 nicht vorhanden ist.

+0

Danke, Yeah das Problem stammt aus meinen Erklärungen der Typen. Ich hatte String-Arrays für die Arrays numerischer Daten deklariert, weil ich keine Berechnung für diese Daten durchführte. Es gab nur Ranglisten zwischen 1-5. Wenn ich den Typ von einem String-Array in ein Integer-Array änderte, ging das Apostroph verloren. Ähnlich das Datum, das ich im Code vor der Hinzufügung in einen formatierten String umgewandelt hatte, oder Code, um das Muster zu setzen. Wenn ich gerade den Datumstyp hochlade, wird das Apostroph entfernt. – conteh

+0

Ich bekam ähnliche Probleme mit Datumsarten, als ich die v4 benutzte, aber für die Projektzwecke musste ich zurück zu v3 rollen, was zufällig das Apostroph-Problem beseitigte, das ich hatte. Ich werde das im Hinterkopf behalten, wenn ich die Bibliothek wieder benutzen muss. –

Verwandte Themen