将超链接从电子表格拉到仪表板上的表格

时间:2015-12-16 19:31:21

标签: hyperlink google-apps-script google-sheets dashboard

我在我正在使用的电子表格中有数据,并且某些字段已超链接以转到另一个页面。当我将数据拉到仪表板上的表格时,超链接就消失了。我需要超链接在应用程序中保持功能。

我正在使用的代码如下:

function doGet() {

  var ss = SpreadsheetApp.openById('1BMFFT2oj9QCwOiMnSQ7YbfrJwGz6x7Q9Kf7h-_IyI5Q');
  var data = ss.getDataRange();


  var dowFilter = Charts.newCategoryFilter().setFilterColumnIndex(2).build();
  var yearFilter = Charts.newCategoryFilter().setFilterColumnIndex(3).build();
  var monthFilter = Charts.newCategoryFilter().setFilterColumnIndex(4).build();

  var tableChart = Charts.newTableChart()
    .setDataViewDefinition(Charts.newDataViewDefinition().setColumns([1,2,4,5,6,9,7,8]))
    .setDimensions(800, 400)
    .getFormulas()
    .build();


 var lineChart = Charts.newLineChart()
     .setDataViewDefinition(Charts.newDataViewDefinition()
                            .setColumns([1,8,9]))
     .setDimensions(800, 400)
     .setTitle('Email Open and Click Rate')
     .setXAxisTitle('Date')
     .setYAxisTitle('Rates')
     .build();

  var dashboard = Charts.newDashboardPanel().setDataTable(data)
    .bind([dowFilter, yearFilter, monthFilter], [tableChart, lineChart])
    .build();

  var app = UiApp.createApplication();
  var filterPanel = app.createVerticalPanel();
  var chartPanel = app.createVerticalPanel();
  filterPanel.add(dowFilter).add(yearFilter).add(monthFilter).setSpacing(10);
  chartPanel.add(tableChart).add(lineChart).setSpacing(10);


  dashboard.add(app.createVerticalPanel().add(filterPanel).add(chartPanel));
  app.add(dashboard);
  return app;
}

1 个答案:

答案 0 :(得分:1)

Google Apps脚本中的图表服务是Google Visualization library的包装,但它不支持其所有功能。嵌入式HTML就是其中的一个例子。您无法使用图表服务执行此操作。

相反,您需要使用HtmlService,并从客户端JavaScript调用Visualization Library。

有关向图表组件添加可点击链接的示例,请参阅Insert Links into Google Charts api data?

有关移动现有设计的工作,请参阅我的博客Converting from UiApp + Chart Service to Html Service + Google Visualization API