Google Fusion Table to Google Spreadsheet - 按选定标准更新电子表格
Posted
技术标签:
【中文标题】Google Fusion Table to Google Spreadsheet - 按选定标准更新电子表格【英文标题】:Google Fusion Table to Google Spreadsheet - Update Spreadsheet by selected criteria 【发布时间】:2014-09-30 08:41:28 【问题描述】:我是编码初学者,我正在运行一个脚本来使用来自 Google Fusion Table 的数据更新 Google 电子表格。 Fusion Table 的数据包含大约 100 个不同的列。
我只想评估选定的列,例如:日期、名字、姓氏、部门。搜索条件如下:
在电子表格上更新以下列“日期、名字、姓氏、部门,其中部门包含 HR”。
我正在使用以下脚本:
function runQuery()
var sql = 'SELECT Date, FirstName, LastName, Department WHERE Department contains HR' + 'TableID';
var result = FusionTables.Query.sqlGet(sql,
hdrs: false
);
if (result.rows)
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
选择Columns并将数据从Fusion Table传输到Spreadsheet是没有问题的。当我只想显示具有上述选择标准的数据(“部门包含 HR”)时,会发生以下错误:
-无效查询:“WHERE”附近的解析错误(第 1 行,位置 33)。 (Zeile 3, Datei "runQuery")-
如果有人可以帮助我,那就太好了。提前谢谢你。
詹斯
更新“詹斯”!
这个功能很好用。然后我会按照以下标准接收选定的数据。
var tableName = '1sJjfOJ4Q.....'
function runQuery()
var sql = 'SELECT Date, FirstName, LastName, Department, EMail from ' + 'tableName';
var result = FusionTables.Query.sqlGet(sql,
hdrs: false
);
if (result.rows)
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the results.
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
当我添加“where 子句”时出现错误:
var tableName = '1sJjfOJ4Q.....'
function runQuery()
var sql = 'SELECT Date, FirstName, LastName, Department, EMail from ' + 'tableName' + 'WHERE Department contains HR';
var result = FusionTables.Query.sqlGet(sql,
hdrs: false
);
if (result.rows)
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the results.
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
错误如下所示: 无效查询:“部门”附近的解析错误(第 1 行,位置 101)。无效的表 id 1sJjfOJ4...-xLfYohPizswhere(第 7 行,文件“代码”)”
看来,第 7 行的“var 结果”不正确,我不知道为什么。
更新“棒”!
var tableName = '1sJjfOJ4Q.....'
function runQuery()
var sql = 'SELECT Date, FirstName, LastName, Department, EMail from ' + 'tableName' + "WHERE Department contains 'HR'";
var result = FusionTables.Query.sqlGet(sql,
hdrs: false
);
if (result.rows)
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the results.
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
出现同样的错误(见更新我)--> 看来,第 7 行的“var 结果”不正确,我不知道为什么。
更新“恩里克”!
function runQuery()
var sql = 'SELECT Date, FirstName, LastName, Department, EMail from 1sJjfOJ4Q..... WHERE Department contains HR';
var result = FusionTables.Query.sqlGet(sql,
hdrs: false
);
if (result.rows)
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();
// Append the results.
sheet.getRange(2, 1, result.rows.length, result.columns.length)
.setValues(result.rows);
出现以下错误: 无效查询:“HR”附近的解析错误(第 1 行,位置 120)。 (第 7 行,文件“代码”) 看来,第 7 行的“var 结果”不正确,我不知道为什么。
【问题讨论】:
【参考方案1】:您的选择需要FROM
在WHERE
之前。 tableID
和WHERE
子句之间应该有一个空格。最后,字符串“HR”应该用引号括起来。试试这个:
sql = "SELECT Date, FirstName, LastName, Department FROM "+tableID+" WHERE Department contains 'HR'";
假设您在调用此函数之前设置了具有正确值的tableID
变量。
【讨论】:
嗨,恩里克。感谢您的回复。在你的情况下 (+TableID+) 我猜表 ID 不会被“激活”。我尝试了另一个版本,但她也出现错误:“var sql = 'SELECT Date, FirstName, LastName, Department FROM ' + '18IA-fm....._' + 'WHERE Department contains HR';”该错误被称为:“无效查询:'Department'(第 1 行,位置 101)附近的解析错误。无效的表 id 1sJjfOJ4 ....WHERE(Zeile 5,Datei“runQuery”)”。 --> 表ID有效。我正在使用这个 tableID 处理同一个电子表格。嗯...也许您还有其他解决方案.... BR Jens “contains”的参数必须用单引号括起来。最简单的方法是将 where 子句括在双引号中:“where Department contains 'HR'” @Jens 似乎您忘记在 tableID 和 WHERE 子句之间添加一个空格。如果您要对其进行硬编码(这似乎就是您正在做的事情,请删除引号和加号,例如... Department FROM 18Ia-fmbla WHERE etc...
@Rod,请。请参阅上面的更新代码(更新“Rod”!)。发生错误。我猜,“var 结果”中有一个错误。我试图弄清楚,但我不知道问题出在哪里。你看到问题了吗?
@Henrique 这是同一个问题,正如我对 Rod 提到的。请。请参阅“更新 Henrique!”多于。我根本找不到问题。也许你们中的一些人有另一个想法......提前谢谢......以上是关于Google Fusion Table to Google Spreadsheet - 按选定标准更新电子表格的主要内容,如果未能解决你的问题,请参考以下文章
对 Fusion Table 进行 SQL 查询时出现 403 错误
Javascript v3 Fusion Table Layer - where子句中的ROWID
要遵循哪个 OAuth 流程? (Google Apps 脚本和 Google Fusion Tables API)