简体   繁体   English

使用C#将Google Spreadsheets作为Excel获取

[英]Getting Google Spreadsheets as Excel using C#

I presume the following are the steps I should do: 我认为以下是我应该做的步骤:

A) I need to post the following for login: A)我需要发布以下内容进行登录:

POST /accounts/ClientLogin HTTP/1.0 Content-type: application/x-www-form-urlencoded POST / accounts / ClientLogin HTTP / 1.0内容类型:application / x-www-form-urlencoded

accountType=HOSTED_OR_GOOGLE&Email=jondoe@gmail.com&Passwd=north23AZ&service=cl& source=Gulp-CalGulp-1.05 accountType=HOSTED_OR_GOOGLE&Email=jondoe@gmail.com&Passwd=north23AZ&service=cl&来源= Gulp-CalGulp-1.05

B) Need to check the return code B)需要检查返回码

C) If it returns a success code I need to download the spreadsheet in the following sample url: http://spreadsheets.google.com/fm?key=DOCUMENT_ID&fmcmd=4&hl=en C)如果返回成功代码,则需要在以下示例网址中下载电子表格: http : //spreadsheets.google.com/fm? key = DOCUMENT_ID& fmcmd=4& hl= zh-CN

How can I do the above operations in C#? 如何在C#中执行上述操作?

EDITED: I have done until logging in. The response stream is something like this. 编辑:在登录之前,我已经做完了。响应流是这样的。 I'm not sure how to download the excel sheet using this. 我不确定如何使用此方法下载Excel工作表。 Any hint would be of great help. 任何提示都会有很大帮助。

The response stream is as follows: 响应流如下:

SID=DQAAAIcAAADFWSVJV-6__fb211rhQLHU_jCQ1sKElh-qOf7V10WI1PUQsKmuTdPD2DEWGdbspK2h7DFxH7DPwDIQaTt1RGhwxSq9isqkmlFgcyX8nu7EotpwOfAnyGrD9mL4N vOVq4MM0FfRWVNlOn64wNM3W4tN0DTN5mLx1_jYHVD5png7esvwneScOSf6wEXGoQfsw5E LSID=DQAAAIkAAACzE9S9RdLtuCl6gfbWn9CKn4nhCdAmW4d0yLp4ypT2In769POcAsQBKiQ-VLH1Y194EuqIVrYoQTphK0Na2GQf_DWwHmXSyToZoqIh2c5GVXA0k_0IH8j745GjzLEqLpVmH2oJFNxOJYpu02If 5O8Wd1x99AsxJ35rz1OHDq_XlDBW4192pReV7SQxSf7z4-4 Auth=DQAAAIkAAACz5fRdLtuCl6gfbWn9CKn4nhCdAmW4d0yLp4ypT2In769POcAsQBKiQ-VLH1Y1-g-zsSlAXwWMwUNufqHku2F5LoAxLIElcF4aLcnQYVGs7xKNX9XlCgwubHkw7sYm4aEnjpLp0Fpmyb_paP_BABWQ ahpM5oyWob5f4KfoLFC7ltcFAVjgJjXsAAjHkToUg SID = DQAAAIcAAADFWSVJV-6__fb211rhQLHU_jCQ1sKElh-qOf7V10WI1PUQsKmuTdPD2DEWGdbspK2h7DFxH7DPwDIQaTt1RGhwxSq9isqkmlFgcyX8nu7EotpwOfAnyGrD9mL4N vOVq4MM0FfRWVNlOn64wNM3W4tN0DTN5mLx1_jYHVD5png7esvwneScOSf6wEXGoQfsw5E LSID = DQAAAIkAAACzE9S9RdLtuCl6gfbWn9CKn4nhCdAmW4d0yLp4ypT2In769POcAsQBKiQ-VLH1Y194EuqIVrYoQTphK0Na2GQf_DWwHmXSyToZoqIh2c5GVXA0k_0IH8j745GjzLEqLpVmH2oJFNxOJYpu02If 5O8Wd1x99AsxJ35rz1OHDq_XlDBW4192pReV7SQxSf7z4-4验证= DQAAAIkAAACz5fRdLtuCl6gfbWn9CKn4nhCdAmW4d0yLp4ypT2In769POcAsQBKiQ-VLH1Y1-G-zsSlAXwWMwUNufqHku2F5LoAxLIElcF4aLcnQYVGs7xKNX9XlCgwubHkw7sYm4aEnjpLp0Fpmyb_paP_BABWQ ahpM5oyWob5f4KfoLFC7ltcFAVjgJjXsAAjHkToUg

EDIT: This is the request header captured by FireBug: (I don't understand some of these parameters to create a HTTP request in C#) Pls help. 编辑:这是FireBug捕获的请求标头:(我不理解其中一些参数,可以在C#中创建HTTP请求)。

Host 主办

spreadsheets.google.com sheets.google.com

User-Agent 用户代理

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729) Mozilla / 5.0(Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10)Gecko / 2009042316 Firefox / 3.0.10(.NET CLR 3.5.30729)

Accept 接受

text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8 text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8

Accept-Language 接受语言

en-us,en;q=0.5 en-us,en; q = 0.5

Accept-Encoding 接受编码

gzip,deflate gzip,放气

Accept-Charset 接受字符集

ISO-8859-1,utf-8;q=0.7,*;q=0.7 ISO-8859-1,utf-8; q = 0.7,*; q = 0.7

Keep-Alive 活着

300 300

Proxy-Connection 代理连接

keep-alive 活着

Cookie 曲奇饼

PREF=ID=090597c918ef0061:TM=1245011295:LM=1245011295:S=qs8OO7D02yy9tKj8; PREF = ID = 090597c918ef0061:TM = 1245011295:LM = 1245011295:S = qs8OO7D02yy9tKj8; rememberme=false; Rememberme = false; SID=DQAAA IUAAAAi0iAuzneHzKleShR4itA8-zGxSKw6hqf8qBHBHJBLbNpynNOon7Ni96C4ckRcVVC5Wt89K8PywrKK5qjTmscrqizfWHygV _nPssvw5uOL9IcEWpa5aqUfeQyk-vsEMHYjLe9Ko0i2pAJrQxBrNFii588ucAVtyNoSrZVzAtZADXhhywHUK8x-LezoUaHiEbM SID = DQAAA IUAAAAi0iAuzneHzKleShR4itA8-zGxSKw6hqf8qBHBHJBLbNpynNOon7Ni96C4ckRcVVC5Wt89K8PywrKK5qjTmscrqizfWHygV _nPssvw5uOL9IcEWpa5aqUfeQyk-vsEMHYjLe9Ko0i2pAJrQxBrNFii588ucAVtyNoSrZVzAtZADXhhywHUK8x-LezoUaHiEbM

Another thing to look at is Fiddler: 另一件事要看的是提琴手:

http://www.fiddler2.com/fiddler2/ http://www.fiddler2.com/fiddler2/

Use it to get an idea of the interactions between your browser and google when you download your spreadsheet 'normally', and then code your application to mimic it. 当您“正常”下载电子表格时,使用它可以了解浏览器和Google之间的交互,然后对应用程序进行编码以模仿它。

并不是很困难:下载Google SS API,然后查看示例代码-它会将您连接到您的Google文档,并且如果您将其作为Visual Studio中的VSTO插件构建,则可以轻松地将数据传递给Excel。我自己一天,但不会倾向于先完成“不花力气”就发布代码。

看起来SID是“会话ID”,大概是您应该在下一次POST / GET中发送回的cookie。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM