2012-03-16 62 views
4

我有一个Excel 2003中文件用线条与此类似:如何写一个“谷歌电子表格”从Excel 2003中VBA

enter image description here

我需要点击“按钮”它补充说,行上谷歌电子表格的最后一个

类似:

enter image description here

这可能吗?

我应该使用命令行Google工具吗?

有没有更好的方法?更简单的方法?

你会怎么做?

(一旦我知道如何从VBA添加“东西”到谷歌文档,如何在F做我把它添加到最后一行?)

更多信息:我有一个Excel 2003“程序”,可以节省公司所有的销售额(包括客户信息),并且我希望制作一个全球通讯录,我的(非IT)同事可以轻松更新。

+0

恕我直言,它看起来像你所要求的完整的代码解决方案。这不是什么意思。你试过什么了?请查看[Google文档API](https://developers.google.com/google-apps/documents-list/),如果您有特定问题,请回过头再提问。投票结束为“不是真正的问题”。 – JimmyPena 2012-03-19 18:49:54

+0

不是我真正在做什么(完整的解决方案),只是一个已经“在那里”,“做到了”的人向正确的方向踢了一脚......就像:我会用这个库并且这样去..不是:这是解决方案....对不起如果我的问题似乎是这样。 – 2012-03-20 09:04:12

回答

6

您不需要OAuth或电子表格API。 Google电子表格允许用简单的表单输入数据,这意味着HTTP POST也可以做到这一点。你只需要通过一个表格来准备你的电子表格来接受数据条目如下:

  • 登录到您的谷歌文件帐户
  • 创建电子表格或工具打开一个现有的
  • 点击/创建表单
  • 形式描述添加任何东西只是为了使保存按钮
  • 保存表单
  • 复制的形式创建页面底部显示的链接中的formkey值
  • 现在,你可以发出一个简单的POST到电子表格中没有的OAuth

你可以用curl现在测试项,如果你有在系统上(从表中替换为formkey的formkey占位符):

curl.exe -v -k "http://spreadsheets.google.com/formResponse?formkey=<formkey>" -d "entry.0.single=test&entry.1.single=test2&pageNumber=0&backupCache=&submit=Submit" 

接下来我们尝试通过以下代码从我们的Excel工作表中执行表单POST。之前添加对“Microsoft XML,v3.0”的引用。将column1替换为所需的值。

Dim httpRequest as XMLHTTP 
Set httpRequest = New XMLHTTP 
httpRequest.Open "POST", "http://spreadsheets.google.com/formResponse?formkey=<formkey>&amp;ifq", False 
httpRequest.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
httpRequest.Send "entry.0.single=" + column1 + "&entry.1.single=" + column2 + "&pageNumber=0&backupCache&submit=Submit" 

'Check result in the following vars 
httpRequest.status 
httpRequest.statusText 

希望帮助

4

我已经开始回答你的问题,但意识到这比我以前玩OAuth 2.0 API时那么简单。我认为如果您可以公开您的Google电子表格,这将会容易得多,但我怀疑这对于销售数据是可取的。

这是不平凡的原因是认证部分。下面的ASP OAuth可能适用于某些工作,但我注意到它使用了Session变量和其他一些ASP对象,所以你必须做很多调整。

有鉴于此,这里是我的原始答案,如果有帮助的话。

有一个谷歌的电子表格API: https://developers.google.com/google-apps/spreadsheets/#adding_a_list_row

OAuth 2.0已链接,电子表格文档指是外的日期。您可以使用OAuth请求here,这可以帮助您开始。

API函数由带有XML的GET/POST请求调用,您可以使用XMLHTTP对象调用该函数。

首先,参考微软XML在Excel项目(工具 - >引用 - >微软XML,V6.0)

在VBA,你基本上是使用以下方法来发送XML请求:

Dim x as MSXML2.XMLHTTP 
Set x = New MSXML2.XMLHTTP 
x.Open "POST", "http://example.com/", False 
x.Send "<xmldata></xmldata>" 

您应该可以为您的VBA代码改编this OAuth 2.0 ASP library

This is an ASP example如何使用该OAuth库;再次,因为ASP和VBA都使用VBScript语法,所以它可能会适应。

0
  • 而不是在Excel中使用VBA,使用完整的VB.NET应用程序与Excel Interop COM软件包。它的语法与VBA命令非常相似,但在VB.NET中传输到Google文档将更容易。

  • 使用Google Documents List API创建一个新的电子表格。

  • 使用Google Spreadsheets API将数据移动到您的在线电子表格中。

这两个Google API都是REST API,因此您必须在VB.NET中使用HttpRequest对象。以下是如何使用它们的great example,只需更改网址,以便它们适用于Google。谷歌电子表格甚至提供了一个library摘要走了很多这些步骤。

相关问题