将私有的Google融合表导入到Google文档电子表格 [英] import private google fusion table to google docs spreadsheet

查看:93
本文介绍了将私有的Google融合表导入到Google文档电子表格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想建立一个图表到Google Fusion Table.我知道可以使用融合表进行此操作,但是我需要使用Google电子表格来完成此操作.

I want to build a chart to google fusion table. I know there is an option to do it with fusion table but I need to do that using google spreadsheet.

如何将私有融合表导入电子表格?

How do I import a private fusion table to a spreadsheet?

function getdata(authToken) {
      query = encodeURIComponent("SELECT * FROM tableid");
      var URL = "http://www.google.com/fusiontables/api/query?sql=" + query;
      var response = UrlFetchApp.fetch(URL, {
         method: "get",
         headers: {
              "Authorization": "GoogleLogin auth=" + authToken,
         }
      });
      return response.getContentText();
}

上面的代码仅给我表头.

The code above gives me the table headers only.

推荐答案

经过深入研究,最终我在深入搜索并阅读

After a deep research, finally i figured it out after a deep search and reading here. This is how it looks for the code google docs spreadsheet app script:

function onOpen()
{
  var tableID = '00000' // Add the table ID of the fusion table here
  var email = UserProperties.getProperty('email');
  var password = UserProperties.getProperty('password');

  if (email === null || password === null) {
    email = Browser.inputBox('Enter email');
    password = Browser.inputBox('Enter password');
    UserProperties.setProperty('email',email);
    UserProperties.setProperty('password', password);
  } else {
    email = UserProperties.getProperty('email');
    password = UserProperties.getProperty('password');
  }

  var authToken = getGAauthenticationToken(email,password);
  query = encodeURIComponent("SELECT * FROM tableID");
  var URL = "http://www.google.com/fusiontables/api/query?sql=" + query;

  var response = UrlFetchApp.fetch(URL, {
     method: "get",
     headers: {
          "Authorization": "GoogleLogin auth=" + authToken,
     }
  });
  var tableData = response.getContentText();
  var o  = Utilities.parseCsv(response.getContentText());
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var cell = doc.getRange('a1');
  var index = 0;
  for (var i in o) {
    var row = o[i];
    var col = 0;
    for (var j in row) {
      cell.offset(index, col).setValue(row[j]);
      col++;
    }
    index++;
  }
}

function getGAauthenticationToken(email, password) {
  password = encodeURIComponent(password);
  var response = UrlFetchApp.fetch("https://www.google.com/accounts/ClientLogin", {
      method: "post",
      payload: "accountType=GOOGLE&Email=" + email + "&Passwd=" + password + "&service=fusiontables&Source=testing"
  });
  var responseStr = response.getContentText();
  responseStr = responseStr.slice(responseStr.search("Auth=") + 5, responseStr.length);
  responseStr = responseStr.replace(/\n/g, "");
  return responseStr;
}

之后,您可以在电子表格中做任何您想做的事情. 顺便说一句,我仍然认为有一种简单的方法可以自动将私有表导入电子表格.

After that you can do whatever you want in the spreadsheet. BTW, I still think there is a simple way to import a private table into a spreadsheet automaticly.

这篇关于将私有的Google融合表导入到Google文档电子表格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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