我有一个HTML表单,可从Google表格获取数据。 为了获得工作表中的所有记录,我使用以下代码。
我现在正在尝试添加代码以过滤数据-
(1)仅获得Col A满足某些条件的一行 例如从行获取数据,其中列A =“ 123” ...列A具有唯一ID
(2)仅获取那些F列为空白的行
请帮助...
function read_value(request,ss){
var output = ContentService.createTextOutput(),
data = {};
var sheet="sheet1";
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.JAVASCRIPT);
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];
}
答案 0 :(得分:0)
除了举一个示例,该示例从电子表格中的给定工作表中获取所有数据并将其返回到html页面并显示出来,我不知道如何回答您的问题。
这是一种在一张纸上获取所有数据的简单方法。目前,它只是电子表格中包含的一个对话框,但可以轻松地将其转换为Web应用程序。
Google Apps脚本:
function getMyData(dObj) {//function called from html in with window.onload
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName(dObj.sheetname);
var rg=sh.getDataRange();
var vA=rg.getValues();
var hl='<table>';
for(var i=0;i<vA.length;i++) {
if(vA[i][0]==dObj.colACriteria){//you can put your filtering criteria here
hl+='<tr>';
for(var j=0;j<vA[i].length;j++) {
hl+=Utilities.formatString('<td>%s</td>', vA[i][j]);
}
hl+='</tr>';
}
}
hl+='</table>';
return hl;
}
function showGetMyDataDialog() {//this launches the html as a modeless dialog
var ui=HtmlService.createHtmlOutputFromFile('getdata').setTitle('My Data');
SpreadsheetApp.getUi().showModelessDialog(ui, 'Get My Data');
}
这是html代码:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<script>
window.onload=function(){
var dObj={sheetname:'Index',colACriteria:'123'};
google.script.run
.withSuccessHandler(function(hl){//this is the call back function that put the data into a div
document.getElementById('mydata').innerHTML=hl;
})
.getMyData(dObj);
};
</script>
<body>
<div id="mydata"></div>
</body>
</html>