Google apps script Google应用程序脚本如何使用页面名称查询Google工作表
我有一个简单的Google站点设置,它运行一个Web应用程序来查询Google工作表,并返回带有必要查询信息的模板html代码。我想添加一些功能,允许脚本使用嵌入Web应用程序的页面名称查询工作表 例如,假设我的网站是: 假设它有几页,例如:Google apps script Google应用程序脚本如何使用页面名称查询Google工作表,google-apps-script,google-sheets-api,Google Apps Script,Google Sheets Api,我有一个简单的Google站点设置,它运行一个Web应用程序来查询Google工作表,并返回带有必要查询信息的模板html代码。我想添加一些功能,允许脚本使用嵌入Web应用程序的页面名称查询工作表 例如,假设我的网站是: 假设它有几页,例如: 我想做的是将我的web应用程序嵌入到每个工作表中,并使用相应的页面名称(即Dave或Rick)作为参数来优化web应用程序执行的查询 我已经试过了,但是“页面”返回为空 var page = SitesApp.getActivePage(); va
var page = SitesApp.getActivePage();
var name = Logger.log(page.getName());
如何将页面名称作为变量在脚本/Web应用程序中使用
更新:
function doGet(e) {
var name = e.queryString
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<? var data = getAlbum(); ?>
// ... the rest is a bunch of markup that makes a table of the query results from getData
function doGet(e) {
var parameters = e.parameter;
getData(parameters);
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
我已根据评论修改了我的方法。假设我的Web应用程序的URL如下:
这是我的Web应用程序代码:
DoGet:
function doGet(e) {
var name = e.queryString
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<? var data = getAlbum(); ?>
// ... the rest is a bunch of markup that makes a table of the query results from getData
function doGet(e) {
var parameters = e.parameter;
getData(parameters);
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
获取数据
function getData() {
// ...here there is a bunch of code extracting data from my spreadsheet
return [pick, title, artist, name]
}
function getData(parameters) {
// ...here there is a bunch of code extracting data from my spreadsheet
return [pick, title, artist, name]
}
HTML:
function doGet(e) {
var name = e.queryString
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<? var data = getAlbum(); ?>
// ... the rest is a bunch of markup that makes a table of the query results from getData
function doGet(e) {
var parameters = e.parameter;
getData(parameters);
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
// ... 其余部分是一组标记,用于生成来自getData的查询结果表
如何将变量“name”(应该等于“Rick”)传递给我的getData函数,以便在查询工作表时使用它?我在注释中没有足够的空间来进行此操作。但这就是
doGet()
可能的样子:
function doGet(e)
{
//Logger.log('query params: ' + Utilities.jsonStringify(e));
if(e.queryString !=='')
{
switch(e.parameter.mode)
{
case 'page4':
setPage('Page4')
return HtmlService
.createTemplateFromFile('Page4')
.evaluate()
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Page4");
break;
case 'page3':
setPage('Page3');
return HtmlService
.createTemplateFromFile('Page3')
.evaluate()
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Page3");
break;
case 'page2':
setPage('Page2');
return HtmlService
.createTemplateFromFile('Page2')
.evaluate()
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Page2");
break;
case 'page1':
setPage('Page1');
return HtmlService
.createTemplateFromFile('Page1')
.evaluate()
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Page1");
break;
default:
setPage('Page1');
return HtmlService
.createTemplateFromFile('Page1')
.evaluate()
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Page1");
break;
}
}
else
{
setPage('Page1');
return HtmlService
.createTemplateFromFile('Page1')
.evaluate()
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Page1");
}
}
您可以将查询参数传递到Web应用程序URL,您可以检查哪些查询参数以及如何使用它们。例如:
https://www.somedomain.com/blah/blah?name=Rick
使用e
中的parameter
属性,可以获取包含传递给get请求的所有参数的对象。您可以在code.gs文件中直接使用这些值,例如:
https://www.somedomain.com/blah/blah?name=Rick
DoGet:
function doGet(e) {
var name = e.queryString
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<? var data = getAlbum(); ?>
// ... the rest is a bunch of markup that makes a table of the query results from getData
function doGet(e) {
var parameters = e.parameter;
getData(parameters);
return HtmlService
.createTemplateFromFile('index')
.evaluate();
}
获取数据
function getData() {
// ...here there is a bunch of code extracting data from my spreadsheet
return [pick, title, artist, name]
}
function getData(parameters) {
// ...here there is a bunch of code extracting data from my spreadsheet
return [pick, title, artist, name]
}
最后,如果您需要在HTML文件和code.gs文件之间进行通信,您应该检查该文件。如何将其添加到Url中的查询字符串中。不能撒谎,我不确定这意味着什么,也不知道如何实现它。
https://www.domaint.com/blah/blah?key=value....
当我构建Multipage Web应用程序时,这是我用来访问不同页面的一种方式。好的,这就引出了第二个问题。如何将“e”从DoGet传递到“GetData”函数?我将在我的初始帖子中添加我的代码。请阅读Web应用程序的要求。这个链接刚刚放在我的答案中。