android - 在 Google 电子表格中获取数据
问题描述
我有这个参考的问题 From this Site Using Google SpreadSheet as Database。问题是这样的。Android 应用程序无法获取谷歌电子表格中的数据。应用程序可以成功运行,但无法在电子表格中找到数据。
由于旧版本使用的代码,我已经更新了 android studio 的代码。我只是复制并粘贴它并更改其中一些。
下面的代码:
获取数据的脚本链接:
电子表格的链接:
https://docs.google.com/spreadsheets/d/16O_OfgKxASgqa2WWQKePJI1jnJMTdb4OyXbUJU6kWH0/edit#gid=0
这是获取数据的应用脚本:
您还可以在此处查看应用程序脚本代码:应用程序脚本代码。
function doGet(request) {
var output = ContentService.createTextOutput(),
data = {},
id = request.parameters.id,
sheet = request.parameters.sheet,
ss = SpreadsheetApp.openById(id);
data.records = readData_(ss, sheet);
var callback = request.parameters.callback;
if (callback === undefined) {
output.setContent(JSON.stringify(data));
} else {
output.setContent(callback + "(" + JSON.stringify(data) + ")");
}
output.setMimeType(ContentService.MimeType.JSON);
return output;
}
function readData_(ss, sheetname, properties) {
if (typeof properties == "undefined") {
properties = getHeaderRow_(ss, sheetname);
properties = properties.map(function(p) { return p.replace(/\s+/g, '_'); });
}
var rows = getDataRows_(ss, sheetname),
data = [];
for (var r = 0, l = rows.length; r < l; r++) {
var row = rows[r],
record = {};
for (var p in properties) {
record[properties[p]] = row[p];
}
data.push(record);
}
return data;
}
function getDataRows_(ss, sheetname) {
var sh = ss.getSheetByName(sheetname);
return sh.getRange(2, 1, sh.getLastRow() - 1, sh.getLastColumn()).getValues();
}
function getHeaderRow_(ss, sheetname) {
var sh = ss.getSheetByName(sheetname);
return sh.getRange(1, 1, 1, sh.getLastColumn()).getValues()[0];
}
来自上方链接的更多代码或单击此处不向后滚动。
解决方案
推荐阅读
- java - 部署 Spring Boot 应用程序时找不到该进程类型(Web)
- javascript - 如何在此打字稿代码中设置默认功能
- javascript - 仅在 NProgress.done() 之后如何在 Vue 组件中显示元素
- pandas - 在我的 LSTM 中出现不可广播的错误
- macos - 如何在 Mac M1 MacBook Pro 上同时运行 TensorFlow 和 Torch?
- php - 即使在 php sql 函数中添加 distinct 和 group by 后也会出现重复值
- python - 我无法在 pygame 中为我的玩家添加重力
- ios - 在 iOS 14 中应用终止或终止时未收到 Voip 通知
- reactjs - 什么时候安装和卸载路由反应组件?
- git - 如何在 github 上编辑 ipynb 文件?