Satyam Koyani Satyam Koyani - 2 months ago 25
Java Question

Create Spreadsheet using Google Spreadsheet API in Google Drive + Java

I have successfully created a new worksheet in a Existing Spreadsheet of My Google Drive Account through a simple Java code mentioned in Google's official Documentation on Developer Guide of Spreadsheet API but I wants to create a new spreadsheet in my Google drive account through java code. In mentioned link they didn't mentioned any sample code for that. I gone through many links but not getting how to do? I have already seen different methods available in Spreadservice class.

I am not getting how to do with Google Spreadsheet API ?

/*
* 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);
}
}

Answer

It's just simple after some research I found this answer. We cannot create a new spreadsheet in google drive with Google Spreadsheet API.

NOTE: we can create new worksheet in already exist spreadsheet of google drive through Google Spreadsheet API but cannot create a new spreadsheet with spreadsheet api.

For creating and uploading new Spreadsheet or any other kind of document which google drive supports we have to use Google Drive api.

This is what I am looking for. By this we can create a new spreadsheet in google drive using google drive api.

    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);

For creating a new spreadsheet we have to create new SpreadsheetEntry() object and for any other document we have to create new DocumentEntry() object.

NOW If we have to upload any kind of document(xls,doc,image etc) in google drive we can do like this

//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);