在每个DocList的Google Site中嵌入表单列表

时间:2013-01-05 17:14:12

标签: google-apps-script google-apps-for-education

我使用了给出的代码 Embedding Google DocList in a Google Site 在Google协作平台的网页中嵌入文件列表(从Google云端硬盘中的文件夹中获取)。我想知道,如果有办法修改输出页面上的链接,那么它们会直接指向电子表格的实时表单,而不是指向脚本中设置的电子表格模式。

2 个答案:

答案 0 :(得分:0)

您可以创建一个文档,并将其命名为Google表单的标题。在文档中粘贴表单的URL。

答案 1 :(得分:0)

编辑:抱歉,忘记第一个答案,因为 实际上是一种获取表单网址的方法!!

这是它的工作原理

function myFunction() {
  var ss=SpreadsheetApp.getActive()
  var formurl = ss.getFormUrl()
  Browser.msgBox(formurl)
}

因此在网站页面中嵌入列表非常容易,

这是一个完成工作的小代码,在线版here(需要授权)要耐心:可能会很慢出现......

function doGet() {
  var app=UiApp.createApplication().setTitle('Available Forms').setStyleAttribute('padding', '25');
  var user = Session.getEffectiveUser().getUserLoginId();
  app.add(app.createLabel('Available forms in Drive for '+user).setStyleAttribute('background', '#dddd33').setPixelSize(500, 18).setHorizontalAlignment(UiApp.HorizontalAlignment.CENTER).setStyleAttribute('fontWeight', 'bold'))
  var flex=app.createFlexTable().setId('flex').setWidth('500').setBorderWidth(1).setCellPadding(2).setStyleAttribute('borderColor', '#dddd33');
  var index = 0
  var docs = DocsList.getAllFiles()
    for (var n in docs){
      if(docs[n].getFileType()=="spreadsheet"){
        var ss=SpreadsheetApp.openById(docs[n].getId())
         if(ss.getFormUrl()){
    flex.setText(index, 0, docs[n].getName())
    flex.setWidget(index, 1, app.createAnchor('open form', ss.getFormUrl()))
    ++ index
  }
  }
  }
  app.add(flex)
  return app
}

再次抱歉我忘了这个功能。


-Forms嵌入在电子表格中,不会在驱动器中显示为单个实体。应用程序脚本无法使用他们的ID(或URL)....我担心您必须手动编码URL .-