2015-09-02 52 views
1

我正在與谷歌腳本,使我的數據顯示在一個更友好的方式,然後只是一個龐大的電子表格與多個人同時過濾。顯示谷歌腳本表圖表鏈接作爲文本

使用下面的腳本進一步我能創造:enter image description here

我的問題是紅色突出部分。本專欄(下一篇)也將始終爲空或顯示鏈接。現在這是一個例子,所以它是一個簡短的鏈接,您可以輕鬆地從那裏複製粘貼到頂部。

1.什麼我想實現:就是有一個可點擊的鏈接(重定向電子表格中的鏈接)2.Ideally我會成立於電子表格,如「鏈接」一詞包含「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 

('@[email protected]');//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; 
} 

回答

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)); 
+0

裏韋羅,非常感謝你的幫助,但是我不知道我理解。我瞭解「gethyperlink」的原理功能,並且還需要定義一些變量。我沒有得到:Currow哪些可以代表當前行,但是這會做多行不只是1的工作?另外最重要的是,這是我第一次以可視方式使用腳本,所以我不確定如何將您編寫的代碼與我已有的腳本結合起來。 –