通过在浏览器中运行的JavaScript将数据推送到Google电子表格 [英] Pushing data to Google spreadsheet through JavaScript running in browser

查看:310
本文介绍了通过在浏览器中运行的JavaScript将数据推送到Google电子表格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个网络应用程序,希望允许用户将数据推送到自己的Google电子表格。

I am working on an web application where I would like to allow the user to push data to her own Google spreadsheet.

首先,我尝试使用适用于JavaScript的Google API客户端库,但它似乎不包含电子表格API(< a href =https://developers.google.com/apis-explorer/#p/ =nofollow> https://developers.google.com/apis-explorer/#p/ ) 。

Firstly I tried to use Google APIs Client Library for JavaScript but it doesn't seem to cover the Spreadsheet API (https://developers.google.com/apis-explorer/#p/).

然后我决定直接使用 Google Spreadsheets API 3.0版。我设法使用 jQuery JSONP 来检索用户的电子表格:

Then I decided to use directly the Google Spreadsheets API version 3.0. I manage to retrieve the user's spreadsheets using jQuery and JSONP:

$.ajax({
  url: 'https://spreadsheets.google.com/feeds/spreadsheets/private/full?alt=json-in-script&access_token=' + access_token,
  dataType: 'JSONP',
  success: function(data){
    // use the spreadsheets
  }
});

在同一种方法中,我从用户选择的电子表格中检索工作表。然后,我必须 POST 将数据导入所选的表格。这里出现的问题:不能使用 JSONP 。而Google伺服器似乎不支援 CORS 。我在浏览器中收到以下错误:

In the same method I retrieve the sheets from the user selected spreadsheet. Then I have to POST the data to the selected sheet. And here comes the problem: can't do it using JSONP. And the Google server seems not to support CORS. I get the following error in the browser:

XMLHttpRequest无法加载https://spreadsheets.google.com/feeds / ... Origin。 。

XMLHttpRequest cannot load https://spreadsheets.google.com/feeds/... Origin ..mysite.. is not allowed by Access-Control-Allow-Origin.

感谢您查看此信息。

推荐答案

我在8个月左右看了这个。我偶然发现了由Martin Hawskey写的博客。我按照这里的指南,我可以设置一个HTML表单张贴到电子表格。

I was looking into this too about 8 months. I stumbled across a blog post written by Martin Hawskey. I followed the guide here and I was able to set up a HTML form posting to a spreadsheet.

有效地,您在电子表格中设置一个已发布的网络应用程序,可以接收数据。要解决CORS问题,您需要在网页上定位隐藏的iframe。我会复制这个帖子中的代码,但有一个公平的位。

Effectively you set up a published web app inside the spreadsheet that can receive the data. To get around the CORS issues you target a hidden iframe on the page. I would replicate the code in this post but there is a fair bit of it.

DEMO

  • Here is the HTML form.
  • Here is the spreadsheet receiving the data.

我会提供一些建议,我希望我在开始看这个时给出。如果你可以...尝试和设置一个PHP服务器,你可以使用。过帐数据是更容易和灵活。我现在在工作中使用 Zend GData ,并希望我能尽快找到: )

I'll provide some advice that I wish I was given when I started looking at this. If you can... try and set up a PHP server you can use. Posting the data is a lot easier and flexible. I now use Zend GData religiously at work and wish I had found it sooner :)

EDIT

Marting Hawskey已更新,使用隐藏的iframe。 请参阅这里

Marting Hawskey has updated this to support a AJAX submission without the use of a hidden iframe. See here.

这篇关于通过在浏览器中运行的JavaScript将数据推送到Google电子表格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆