1

我使用在 Google 站点中嵌入 Google DocList 中给出的代码 将文件列表(取自 Google 驱动器中的文件夹)嵌入到 Google 站点的页面中。我想知道,是否有办法修改输出页面上的链接,以便它们指向电子表格的实时形式,而不是脚本中设置的电子表格模式。

4

2 回答 2

0

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

于 2013-01-05T19:58:18.230 回答
0

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

下面是它的工作原理

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

所以在网站页面中嵌入列表会很容易,

这是一个完成这项工作的小代码,这里的在线版本(需要授权)请耐心等待:显示速度可能会很慢......

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
}

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


- 表格嵌入在电子表格中,不会在您的驱动器中显示为单独的实体。他们的 ID(或 URL)不能从应用程序脚本中获得......恐怕你必须手动对 URL 进行编码。-

于 2013-01-05T20:36:01.517 回答