我正在尝试查询 Google 电子表格中的数据,任何人都可以使用Read Only 链接阅读该数据。
我实现了 this Quickstart 解决方案,但这是我需要的:
- 只需使用 URL 即可访问数据,无需身份验证
- 查询A列中的项目并获取B列中的值
- 无需更新任何数据
我尝试构造如下查询:
http://spreadsheets.google.com/tq?tq=SELECT%20*%20WHERE%20A=C298732300456446&key=2aEqgR1CDJF5Luib-uTL0yKLuDjcTm0pOIZeCf9Sr0wAL0yK
但我得到的只是:
/*O_o*/
google.visualization.Query.setResponse(
{
"version": "0.6",
"reqId": "0",
"status": "error",
"errors": [
{
"reason": "invalid_query",
"message": "INVALID_QUERY",
"detailed_message": "Invalid query: NO_COLUMN: C298732300456446"
}
]
}
当数据实际存在于工作表中的 A 列且值为 C298732300456446
时,就会出现这种情况。
如果我的电子表格没有任何身份验证,我可以做什么来获取数据?
最佳答案
我不确定这是否可以做到。如果没问题,我可以建议一个替代解决方案。您可以尝试编写 Google App 脚本,例如:
function doGet(e) { return getInfo(e); }
function doPost(e) { return getInfo(e); }
function getInfo(request) {
var someValueFromUrl = request.parameter.value;
var requiredValue = "";
var sheet = SpreadsheetApp.openById("spreadsheet_id");
var data = sheet.getDataRange().getValues();
for (var i = 0; i < data.length; i++) {
Logger.log("Reading row num: " + i);
if(data[i][0] == someValueFromUrl) {
requiredValue = data[i][1];
break;
}
}
Logger.log(requiredValue);
return ContentService.createTextOutput(JSON.stringify(requiredValue));
}
这样,您可以将此脚本发布为 Web 应用程序,并使用发布此脚本时将获得的 URL 调用它。
像这样调用脚本:
https://script.google.com/macros/s/obtained_url/exec?value=1234
如果找到 key ,您将得到如下字符串响应:
"value"
希望对您有所帮助。
关于android - 在 Android 中从 Google 电子表格查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47449615/