我正在寻找能够获得输入的功能,例如 - " project"," locale"," date"并且该功能将根据"项目"转到电子表格中的相关表格。 value,将根据区域设置和日期显示相关行。
例如 -
电子表格X包括3张 - 项目1,项目2和1。摘要。
在摘要表中,我有3个变量 - project,locale&日期。我还有一个" show"的按钮。
一旦我点击"显示"该函数将根据变量向我显示数据。
答案 0 :(得分:0)
这是一个简单的例子,我认为可能接近你想要的。它包括一个搜索按钮和一个清除按钮,并希望您在摘要表的行上选择一个您希望查看其数据的单元格。在摘要表上选择一行后,单击搜索按钮,该项目页面中该位置和日期的数据将显示在侧栏上。如果要清除数据,请按清除按钮。
Code.gs:
function searchForDataSideBar()
{
var ui=HtmlService.createHtmlOutputFromFile('searchinfordata');
SpreadsheetApp.getUi().showSidebar(ui);
}
function searchForData()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Summary');
var cell=sh.getActiveCell();
var row=cell.getRow();
var cols=sh.getLastColumn();
var rg=sh.getRange(row, 1, 1, cols);
var vA=rg.getValues();
var sh1=ss.getSheetByName(vA[0][0]);
var rg1=sh1.getDataRange();
var vA1=rg1.getValues();
var s='';
for(var i=1;i<vA1.length;i++)
{
var data=vA1[i];
var a=vA[0][1];
var b=data[0];
var c=vA[0][2].valueOf();
var d=data[1].valueOf();
if(a==b && c==d)
{
s+=Utilities.formatString('Project Name:%s<br />Location:%s<br />Date:%s<br />Data1:%s<br />Data2:%s</br>Data3:%s</br>Data4:%s</br>Data5:%s</br><hr>',vA[0][0],data[0],Utilities.formatDate(new Date(data[1]), Session.getScriptTimeZone(), "E MMM dd,yy"),data[2],data[3],data[4],data[5],data[6])
}
}
return s;
}
我使用侧边栏打开按钮并显示您的数据。我的文件名是searchinfordata.html:
<!DOCTYPE html>
<html>
<head>
<title>Searching for Data</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function search()
{
google.script.run
.withSuccessHandler(found)
.searchForData();
}
function found(hl)
{
document.getElementById('found').innerHTML=hl;
}
function clearDiv()
{
document.getElementById('found').innerHTML='';
}
console.log('MyCode');
</script>
</head>
<body>
<div id="instr">Please Select a cell on the row in the summary tab that you wish to see the data for.</div>
<input type="button" value="Search" onClick="search();" />
<input type="button" value="Clear" onClick="clearDiv();" />
<div id="found"></div>
</body>
</html>
这是onOpen()函数,您可以在其中构建菜单或启动侧栏。
function onOpen()
{
SpreadsheetApp.getUi().createMenu('My Tools')
.addItem('Show Sidebar','searchForDataSideBar')
.addToUi();
searchForDataSideBar();//launches your sidebar whenever you open your spreadsheet.
}
这就是摘要标签的样子:
P1标签:
P2标签:
P3标签:
最后是补充工具栏: