Link to home
Start Free TrialLog in
Avatar of tony_angelopoulos
tony_angelopoulosFlag for United States of America

asked on

Download a spreadsheet from Google Docs using C#

I am trying to download a google spreadsheet as an xls.  I cannot figure out how to do the export.

I have seen this in the documentation:
http://code.google.com/apis/documents/docs/2.0/developers_guide_protocol.html#DownloadingSpreadsheets

but cannot figure out how to make it happen.  Do I need to do something with System.Net.WebClient.DownloadFile?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Google.GData.Client;
using Google.GData.Extensions;
using Google.GData.Spreadsheets;
using System.Web;
namespace GoogleDownloaderSpreadsheet
{
    class Program
    {
        static void Main(string[] args)
        {
            SpreadsheetsService myService = new SpreadsheetsService("exampleCo-exampleApp-1");
            myService.setUserCredentials("myemail@gmail.com", "mypassword");
 
            SpreadsheetQuery query = new SpreadsheetQuery();
            SpreadsheetFeed feed = myService.Query(query);
 
            foreach (SpreadsheetEntry entry in feed.Entries)
            {
                Console.WriteLine(entry.Title.Text);
                if (entry.Title.Text == "Certificates")
                {
                  //how do I export the entry to a location on my hard drive?
   
                }
            }
        }
    }
}

Open in new window

Avatar of csharpp
csharpp
Flag of Hungary image

Use HttpWebRequest with

GET http://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=spreadsheet_id&fmcmd=4

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=" + spreadsheet_id.ToString() + "&fmcmd=4");
myReg.Method = "GET";
 
HttpWebResponse WebResp = (HttpWebResponse)myReq.GetResponse();
    //Let's show some information about the response
    Console.WriteLine(WebResp.StatusCode);
    Console.WriteLine(WebResp.Server);
           
    //Now, we read the response (the string), and output it.
    Stream Answer = WebResp.GetResponseStream();
 
//save the stream...

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of csharpp
csharpp
Flag of Hungary image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of tony_angelopoulos

ASKER

Exactly what I needed, thank you!