1

How to create a new, empty spreadsheet using Zends GData Library?

czerasz
  • 13,682
  • 9
  • 53
  • 63

3 Answers3

5

According to the Google Documents List API, to create a new, empty spreadsheet: follow the instructions in Creating a new document or file with metadata only. When doing so, use a category term of http://schemas.google.com/docs/2007#spreadsheet.

With Zend GData library, it may look like this:

// Load Zend library
require_once('Zend/Loader.php');
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Docs');

// Authentication
$client = Zend_Gdata_ClientLogin::getHttpClient('you@there.com', 'sunshine-', Zend_Gdata_Docs::AUTH_SERVICE_NAME);

// Get interface to Documents List API
$docs = new Zend_Gdata_Docs($client);

// Create new document
$data = new Zend_Gdata_Docs_DocumentListEntry();
$data->setCategory(
      array(new Zend_Gdata_App_Extension_Category(
              "http://schemas.google.com/docs/2007#spreadsheet",
              "http://schemas.google.com/g/2005#kind"
)));
$data->setTitle(new Zend_Gdata_App_Extension_Title("My brand new spreadsheet", null));

// Add document to your list
$doc = $docs->insertDocument($data, Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);

// Display document ID
print($doc->getId());
Gaëtan Frenoy
  • 480
  • 3
  • 13
0

Here is how I did it:

     $service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;
     $client = Zend_Gdata_ClientLogin::getHttpClient('USERNAME', 'PASSOWRD', $service);
     $docs = new Zend_Gdata_Docs($client);

     // A file I use as a template for this [ based on the extension is the type of document that will be created] 
     // see: http://framework.zend.com/manual/en/zend.gdata.docs.html
     $fileToUpload = 'Rates-Template.xls'; 
     $newDocumentEntry =  $docs->uploadFile($fileToUpload, 'Spreadsheet Title Here',null, Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);
Andre
  • 2,449
  • 25
  • 24
  • I tried your method it just brought an error, upload error, can you upload a file without using a form directly? – alphy May 28 '14 at 16:49
0

You cannot do this at this moment.

The Spreadsheets data API does not currently provide a way to programmatically create or delete a spreadsheet.

quote from official documentation

shanethehat
  • 15,460
  • 11
  • 57
  • 87
Dmitry Z.
  • 424
  • 6
  • 16