我一直试图通过谷歌脚本和谷歌电子表格创建一个新的电子表格,并将其显示给用户。我可以使用SpreadsheetApp.create创建工作表;但是,我无法在浏览器上显示它。当我尝试在我的驱动器中搜索它时,它正在显示。
我注意到了Sheet的方法显示,所以,我尝试使用我在新创建的电子表格中创建的单个工作表,但是,这不起作用。
答案 0 :(得分:1)
使用GAS,您无法以编程方式将用户导航到另一个电子表格。
您可以使用this show method并使用指向新创建的电子表格的链接显示HTML内容。他们显然必须点击链接才能继续。
我们可能还有其他一些事情可做,但我们需要了解更多关于您尝试完成的内容以及原因。
答案 1 :(得分:0)
您可以使用网络应用程序执行类似的操作。
Code.gs:
function createSpreadsheet(name){
var file=SpreadsheetApp.create(name);
var sh=file.getActiveSheet();
var fObj={};
sh.appendRow(['FileName:',file.getName()]);
sh.appendRow(['Url:',file.getUrl()]);
sh.appendRow(['Sheet Name:',file.getSheetName()]);
sh.appendRow(['Id:',file.getId()]);
var hl=Utilities.formatString('<a href="%s" target="_blank" >%s</a>', file.getUrl(), file.getName());
fObj['id']=file.getId();
fObj['hl']=hl;
return fObj;
}
function doGet(){
return HtmlService.createTemplateFromFile('creatandshow').evaluate().setTitle('Create and Show Spreadsheet')
}
function include(filename){
return HtmlService.createHtmlOutputFromFile(filename).getContent();
}
function getFileFolder(Id){
var ss=SpreadsheetApp.openById(Id);
var sh=ss.getActiveSheet();
var file=DriveApp.getFileById(Id);
var folders=file.getParents();
while(folders.hasNext()){
sh.appendRow(['Parent Folder:',folders.next()]);
}
SpreadsheetApp.flush();
}
script.html:
<script>
<script>
function createSpreadsheet(){
var name=$('#ssName').val();
if(!name) {
alert('You did not enter a Spreadsheet Name');
}else{
google.script.run
.withSuccessHandler(function(fObj){
$('#sslinks').html(fObj.hl);
google.script.run.getFileFolder(fObj.id);
})
.createSpreadsheet(name);
}
}
</script>
resources.html:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
creatandshow.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<?!= include('resources') ?>
<?!= include('css') ?>
<?!= include('script') ?>
</head>
<body>
<div id="sslinks"></div>
<div id="controls">
<input id="ssName" type="text" placeholder="Enter New Spreadsheet Name" size="60" />
<input id="btn1" type="button" value="Create Spreadsheet" onClick="createSpreadsheet();" />
</div>
</body>
</html>
是这样的: