Google Script Table Chart链接为文字

时间:2015-09-02 09:29:05

标签: javascript google-apps-script

我正在使用谷歌脚本以更加用户友好的方式显示我的数据,然后只是一个巨大的电子表格,同时有多个人过滤。

使用下面进一步显示的脚本,我可以创建:enter image description here

我的问题是红色突出显示的部分。此列(下一个列)将始终为空或显示链接。现在这是一个示例,因此它是一个简短的链接,您可以从那里轻松复制并粘贴到顶部。

1.我想实现的目标是:将该链接点击(电子表格中的重定向链接)2。我真的会在电子表格中设置像“链接”这样的单词,其中包含“https://www.google.de/”这样的超链接然后你会在图表中点击单词链接,它会带你到链接。

下面我将添加我目前使用的脚本。

//Get the spreadSheet Url

var ssKey ="-Link to Spreadsheet-";

function doGet() 
{
var uiApp = UiApp.createApplication().setTitle("Database");
var ss = SpreadsheetApp.openByUrl(ssKey);

//Get the compelte data from sheet name "-Name-"

var dataRange = ss.getSheetByName("OPEN").getDataRange().setNumberFormat

('@STRING@');//getRange(1, 1, lastRow, lastColumn);

//To provide a category or dprodown filter

var oneFilter = Charts.newCategoryFilter().setFilterColumnLabel("Type of Request").build();
var secondFilter = Charts.newCategoryFilter().setFilterColumnLabel("Work: Business").build();  
var thirdFilter = Charts.newCategoryFilter().setFilterColumnLabel("Work: ").build();  
var forthFilter = Charts.newStringFilter().setFilterColumnLabel("IDEA").build();
var fifthFilter = Charts.newCategoryFilter().setFilterColumnLabel("REGION / FUNCTION").build();
var sixthFilter = Charts.newCategoryFilter().setFilterColumnLabel("-name of filter 6-").build();  


// To get data of spreadhseet in table format
var tablechart = Charts.newTableChart()
                .setDimensions(1750,1000)
                .setOption('allowHtml',true)
                .setOption('width', '100%')
                .setOption('lenght', '100%')
                .enablePaging(10)
                .build();


// To Add Age filter and table data in dashboard
var dashboard = Charts.newDashboardPanel()
                .setDataTable(dataRange)
                .bind([oneFilter,secondFilter,thirdFilter,forthFilter,fifthFilter,sixthFilter],[tablechart]).build();


var app = UiApp.createApplication()
  var filterPanel = app.createHorizontalPanel();
  var filterPanel2 = app.createHorizontalPanel();
  var chartPanel = app.createVerticalPanel();

  filterPanel.add(oneFilter).add(secondFilter).add(thirdFilter).setSpacing(10);
  filterPanel2.add(forthFilter).add(fifthFilter).add(sixthFilter).setSpacing(10);
  chartPanel.add(tablechart).setSpacing(10);


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

1 个答案:

答案 0 :(得分:0)

要从脚本创建链接,您必须设置单元格的值,就好像它是您在电子表格中编写的公式一样。为此,我们将在单元格中使用“HYPERLINK(url,value)”。您也许可以创建一个方法来创建带有公式的字符串,并将该值设置为单元格。

尝试这种方法:

function getHyperLink(url,val) {
  return "=HYPERLINK("+"\""+url+"\""+","+"\""+val+"\""+")";
}


//Example to obtain the value of the url and the text to set in as a link
    var aSheet = SpreadsheetApp.getActiveSheet();
    var curRow = aCell.getRow();
    var val = aSheet.getRange(curRow, 0).getValue();
    var url = aSheet.getRange(curRow, 1).getValue();
    aSheet.getRange(curRow, 2).setHorizontalAlignment('center').setValue(getHyperLink(url,val));