将Google融合表中的数据导入Google电子表格

时间:2015-02-06 16:08:59

标签: android google-apps-script google-sheets google-fusion-tables

我正在使用Google云端硬盘建立一个不错的IT库存系统。 我写了一个Android应用程序(使用app Inventor),它允许我扫描一个电脑的条形码并添加一些注释。该数据存储在Google Fusion Table中。

(日期|电脑代码|任务)

现在我想将融合表导入Google电子表格。这样,我就可以创建一个列表,看看我看过/安装了什么软件的软件以及我还有什么电脑要看。

我尝试过使用

 =importxml()
 =importurl()
 =importrange()

但由于我在mysql查询方面一点都不好,而且我似乎无法在网上找到合适的解决方案,我想在这里问......

提前致谢!

PS:

Here is the sample fusion table I use in my android app.

Here is a sample (empty) spreadsheet.

这个问题的答案非常有帮助,并且节省了很多"打字"时间。

1 个答案:

答案 0 :(得分:2)

您需要为Fusion Tables启用高级Google服务:

Google Documentation - Advanced Google Services

在Apps脚本代码编辑器中,选择资源高级GOOGLE服务

您将看到一个如下所示的弹出窗口:

enter image description here

打开Fusion Tables,然后单击窗口底部的链接转到开发人员控制台

DevelopersConsole

滚动到Fusion Tables,然后单击OFF将其打开。该项目将从列表中删除并转到页面顶部:

Enabled APIs

在这里查看示例代码:

Fusion Tables API

我复制了示例代码,并对其进行了一些更改。我测试了它,它将我所有的Fusion表格数据放入当前的电子表格和活动表格中。

function runQuery(tableId) {
  tableId = "yourTableID";

  var sql = 'SELECT * FROM ' + tableId + ' LIMIT 100';
  var result = FusionTables.Query.sqlGet(sql, {
    hdrs: false
  });
  if (result.rows) {
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = spreadsheet.getActiveSheet();

    // Append the headers.
    sheet.appendRow(result.columns);

    // Append the results.
    sheet.getRange(2, 1, result.rows.length, result.columns.length)
        .setValues(result.rows);

    Logger.log('Query results spreadsheet created: %s',
        spreadsheet.getUrl());
  } else {
    Logger.log('No rows returned.');
  }
}

打开要从中获取数据的融合表,并从URL中获取文件ID:

google.com/fusiontables/DataSource?docid=1LDLJFU398UFOjB4-BS89IOHV89TYHTOHC&pli=1#rows:id=1