11

Ich habe erfolgreich ein neues Arbeitsblatt in einem vorhandenen Arbeitsblatt meines Google Drive-Kontos durch einen einfachen Java-Code in der offiziellen Dokumentation von Google auf Developer Guide of Spreadsheet API erstellt, aber ich möchte ein neu erstellen Tabelle in meinem Google Drive-Konto über Java-Code. In dem erwähnten Link haben sie keinen Beispielcode dafür erwähnt. Ich habe viele Links durchgegangen, aber ich habe nicht gelernt, wie es geht. Ich habe bereits verschiedene Methoden in der Klasse Spreadservice gesehen.Erstellen von Tabellen mit Google Tabellen-API in Google Drive + Java

Ich bekomme nicht wie mit Google Spreadsheet API zu tun?

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 

import com.google.gdata.client.spreadsheet.*; 
import com.google.gdata.data.Link; 
import com.google.gdata.data.PlainTextConstruct; 
import com.google.gdata.data.TextConstruct; 
import com.google.gdata.data.docs.ExportFormat; 
import com.google.gdata.data.spreadsheet.*; 
import com.google.gdata.util.*; 


import java.io.IOException; 
import java.net.*; 
import java.util.*; 
import javax.xml.soap.Text; 


    /** 
    * 
    * @author satyam 
    */ 
    public class SpreadSheet { 

     public static void main(String[] args) 
       throws AuthenticationException, MalformedURLException, IOException, ServiceException { 

      SpreadsheetService service = new SpreadsheetService("gBuddy"); 

      // TODO: Authorize the service object for a specific user (see other sections) 
      String USERNAME = "USERNAME"; 
      String PASSWORD = "PASSWORD"; 

      service.setUserCredentials(USERNAME, PASSWORD); 


      // Define the URL to request. This should never change. 
      URL SPREADSHEET_FEED_URL = new URL(
        "https://spreadsheets.google.com/feeds/spreadsheets/private/full"); 

      // Make a request to the API and get all spreadsheets. 
      SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class); 
      List<SpreadsheetEntry> spreadsheets = feed.getEntries(); 

      // Iterate through all of the spreadsheets returned 
      for (SpreadsheetEntry spreadsheet : spreadsheets) { 
    //    Print the title of this spreadsheet to the screen; 
       System.out.println(spreadsheet.getTitle().getPlainText()); 
      } 

      SpreadsheetEntry spreadsheet = spreadsheets.get(1); 
    //  System.out.println(spreadsheet.getTitle().getPlainText()); 

    //  // Create a local representation of the new worksheet. 
      WorksheetEntry worksheet = new WorksheetEntry(); 
      worksheet.setTitle(new PlainTextConstruct("New Worksheet")); 
      worksheet.setColCount(10); 
      worksheet.setRowCount(20); 

      // Send the local representation of the worksheet to the API for 
      // creation. The URL to use here is the worksheet feed URL of our 
      // spreadsheet. 
      URL worksheetFeedUrl = spreadsheet.getWorksheetFeedUrl(); 
      WorksheetEntry insert = service.insert(worksheetFeedUrl, worksheet); 
     } 
    } 

Antwort

25

Es ist nur einfach nach ein paar Recherchen fand ich diese Antwort. Wir können keine neue Tabelle in Google Drive mit Google Spreadsheet API erstellen.

HINWEIS: wir können neues Arbeitsblatt in bereits vorhandener Tabelle von Google Drive über Google Spreadsheet API erstellen, aber keine neue Tabelle mit Tabellenkalkulationsprogramm API erstellen.

Zum Erstellen und Hochladen neuer Tabellenkalkulationen oder anderer Dokumente, die Google Drive unterstützt, müssen wir Google Drive api verwenden.

Das ist, was ich suche. Dadurch können wir eine neue Tabelle in Google Drive mit Google Drive API erstellen.

DocsService docsService = new DocsService("MySampleApplication-v3"); 
    docsService.setUserCredentials(USERNAME, PASSWORD); 
    URL GOOGLE_DRIVE_FEED_URL = new URL("https://docs.google.com/feeds/default/private/full/"); 
    DocumentListEntry documentListEntry = new com.google.gdata.data.docs.SpreadsheetEntry(); 
    documentListEntry.setTitle(new PlainTextConstruct("Spreadsheet_name")); 
    documentListEntry = docsService.insert(GOOGLE_DRIVE_FEED_URL, documentListEntry); 

Für eine neue Tabelle schaffen wir new SpreadsheetEntry() Objekt und für jedes andere Dokument, das wir haben erstellen new DocumentEntry() Objekt erstellen haben.

Wenn wir jetzt jede Art von Dokument zu laden haben (xls, doc, Bild usw.) in Laufwerk google wir wie diese

//File upload in google drive 
     DocumentListEntry uploadFile = new DocumentListEntry(); 
     uploadFile.setTitle(new PlainTextConstruct("FILE_NAME_DISPLAY_IN_DRIVE")); 
     uploadFile.setFile(new File("FILE_PATH"), "MIME_TYPE_OF_FILE"); 
     uploadFile = docsService.insert(GOOGLE_DRIVE_FEED_URL, uploadFile); 
+0

Aber wie gehen Sie mit diesem Fehler um? 'com.google.gdata.util.InvalidEntryException: Der Eintrag muss genau eine Hauptkategorie enthalten ' – Chloe

+0

Muss den vollständig qualifizierten Paketnamen verwenden. Es gibt zwei SpreadsheetEntry-Klassen. WTF Google? 'entry.getCategories(). add (com.google.gdata.data.docs.SpreadsheetEntry.CATEGORY);' – Chloe

1

Sie sollten die verwenden, um neue SpeakSheets zu erstellen.

Was kann diese API?

Das Google Dokumente Listen API ermöglicht es Entwickler zu erstellen, abrufen, aktualisieren und löschen Google Text & Tabellen (einschließlich, aber nicht beschränkt Dokumente, Tabellen, Präsentationen in Text und Zeichnungen), Dateien und Sammlungen. Es bietet auch einige erweiterte Funktionen wie Ressource Archive, optische Zeichenerkennung, Übersetzung und Revision Geschichte.

+1

tun können ich schon auf diesen Link überprüft, aber wie in Java zu tun, wie es ist Beispielcode in .NET nicht in Java. Sogar ich habe versucht, in java api dieselbe Klasse zu finden, aber nicht erfolgreich. –

+1

Leider ist diese API veraltet. Sie sollten die [google drive api] (https://developers.google.com/drive) verwenden. – user1067920

Verwandte Themen