android - 在 Android 中从 Google 电子表格查询数据

标签 android google-sheets kotlin

我正在尝试查询 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/

相关文章:

kotlin - Map withDefault 无法在 kotlin 中工作?

android - 是否可以在 Android 平板电脑上模拟 Android 手机?

android - 在已 root 的 Android 设备上,如何打开 < 1024 的端口?

xml - 如何使用 Xpath 从 BoxOfficeMojo 中提取电影标题

if-statement - 谷歌表格 : how to trigger random function?

android - 为什么 Kotlin 中的 Fragment 中 "activity"链接到 "getActivity()"?

android - Eclipse ADT 正式被废弃了吗?

Android:在软键盘前显示对话框

google-apps-script - 从电子表格中的列动态更新 Google 表单 'Choose from list' 选项

android - Android VMTV中的Api调用