创建新的电子表格并显示Google脚本

时间:2016-05-01 19:35:46

标签: google-apps-script google-sheets

我一直试图通过谷歌脚本和谷歌电子表格创建一个新的电子表格,并将其显示给用户。我可以使用SpreadsheetApp.create创建工作表;但是,我无法在浏览器上显示它。当我尝试在我的驱动器中搜索它时,它正在显示。

我注意到了Sheet的方法显示,所以,我尝试使用我在新创建的电子表格中创建的单个工作表,但是,这不起作用。

2 个答案:

答案 0 :(得分:1)

使用GAS,您无法以编程方式将用户导航到另一个电子表格。

您可以使用this show method并使用指向新创建的电子表格的链接显示HTML内容。他们显然必须点击链接才能继续。

我们可能还有其他一些事情可做,但我们需要了解更多关于您尝试完成的内容以及原因。

答案 1 :(得分:0)

从StandAlone WebApp创建和显示电子表格

您可以使用网络应用程序执行类似的操作。

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>

是这样的:

enter image description here