在Android中从Google电子表格查询数据
我正在尝试从谷歌电子表格中查询数据,任何人都可以通过只读链接阅读 我实施了快速启动解决方案,但我需要:在Android中从Google电子表格查询数据,android,google-sheets,kotlin,Android,Google Sheets,Kotlin,我正在尝试从谷歌电子表格中查询数据,任何人都可以通过只读链接阅读 我实施了快速启动解决方案,但我需要: 仅使用URL访问数据,无需身份验证 查询A列中的项并获取B列中的值 无需更新任何数据 我尝试构建如下查询: http://spreadsheets.google.com/tq?tq=SELECT%20*%20WHERE%20A=C298732300456446&key=2aEqgR1CDJF5Luib-uTL0yKLuDjcTm0pOIZeCf9Sr0wAL0yK 但我得到的只是
- 仅使用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
如果没有电子表格的任何验证,我可以如何获取数据?我不确定是否可以这样做。如果可以的话,我可以建议一个替代方案。您可以尝试编写谷歌应用程序脚本,如:
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));
}
https://script.google.com/macros/s/obtained_url/exec?value=1234
如果找到键,您将得到如下字符串响应:
"value"
我希望这会有所帮助。C298732300456446需要放在单引号内 因此,您需要将
C298732300456446
作为%27C298732300456446%27
修改后的查询将是
http://spreadsheets.google.com/tq?tq=SELECT%20*%20其中%20A=%27C298732300456446%27&key=2eqgr1cdjf5luib-uTL0yKLuDjcTm0pOIZeCf9Sr0wAL0yK
但我无法测试-看起来您已从此电子表格中删除/删除了访问权限