2017-12-14 4 views
0

기존 GoogleSheet에서 이미지 버튼을 만들고 대상 Google 그놈 시트의 ID를 사용하여 다른 GoogleSheet를 여는 작은 스크립트를 첨부하려고합니다. 이미지 버튼을 만들었고 함수 스크립트를 첨부하는 방법을 알고 있습니다.Google Apps Script를 사용하여 클라이언트 측 Google 시트 열기

나는 다음과 같은 시도 :이 전용 서버 측 스크립트의 파일을 엽니 다 내가 찾은 추가 읽기에 그러나

function Open2017File() { 
 
    var ss = SpreadsheetApp.OpenById("1mTz8YaH_lu6R3icbSCpgx0Oy-AB4a98thDPP0m1xNhU"); 
 
    Logger.log(ss.getName()); 
 
}
...

누군가가 나를 도울 수 클라이언트 측에서 GoogleSheet를 여는 등가 명령을 내게 알려줍니다. ? 사용하여 당신이 이것을 달성 할 수있는 사전

+1

명령이 없습니다. 그건 당신이 접근 할 수있는 URL이 필요합니다. 귀하의 계정 또는 귀하와 공유 할 수있는 항목. 계정에 가서 파일을 여는 것만 큼 다른 점이 없습니다. – Cooper

+0

GoogleDoc URL이있어서 문서를 여는 데 사용할 수있는 코드는 무엇입니까? (단추 이미지에 첨부하고 싶다는 것을 기억하십시오.) Thxs – mond007

+1

URL을 내 북마크 중 하나에 넣으시면됩니다. – Cooper

답변

1

에서

덕분에 내장 된 HtmlService 및 스크립틀릿. '파일'- '새로 만들기'- 'HTML 파일'로 이동하여 프로젝트에 HTML 페이지를 추가하십시오. 나는 내 '사이드 바'라고 불렀다. '<?! =?>'표기법은 html에 전달 된 변수를 '.gs'코드로 출력하는 데 사용됩니다. 느낌표 '!' 이 기호 사이의 모든 내용이 페이지에 직접 인쇄됨을 나타냅니다.

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    </head> 
    <body> 
    <a href="<?!= spreadsheet.url ?>"> Open spreadsheet <?!= spreadsheet.name ?> </a> 
    </body> 
</html> 

아래 코드는 스프레드 시트에 사용자 지정 메뉴를 추가 - '표시 사이드 바'메뉴 옵션을 클릭하면 'showSidebar()'기능을 실행합니다. 이 함수 안에서 먼저 사이드 바에 대한 HtmlTemplate 클래스의 인스턴스를 가져와야합니다. 이제는 사용자 정의 속성을 정의 할 수있는 JS 객체 일뿐입니다. 그것이 스크립틀릿이 작동하는 곳입니다.

다음 단계는 'getSpreadsheet (id)'함수를 호출하여 두 번째 시트의 URL과 파일 이름을 가져 와서 변수를 HtmlTemplate에 전달하는 것입니다.

마지막으로 템플릿에서 evaluate() 메서드를 호출하면 템플릿이 showSidebar() 메서드에서 사용할 준비가 된 HtmlOutput 객체로 변환됩니다. 우리가 템플릿에 전달 속성은 결과 HTML로 인쇄됩니다 :

var ui = SpreadsheetApp.getUi(); 
var spreadsheetId = YOUR_ID_HERE; 

function onOpen() { 

ui.createMenu('User options').addItem('Show sidebar', 'showSidebar').addToUi(); 

} 

function showSidebar() { 

var template = HtmlService.createTemplateFromFile('sidebar'); 
var spreadsheet = getSpreadsheet(spreadsheetId); 

    template.spreadsheet = {  //passing data to the template 
    url: spreadsheet.getUrl(), 
    name: spreadsheet.getName() 
    }; 




    ui.showSidebar(template.evaluate()); //evaluate runs the scriptlets 
             //and creates the fully-formed DOM tree 

} 

function getSpreadsheet(id) { 


    return SpreadsheetApp.openById(id); 


} 

은 물론, 당신은 쉽게 액세스 할 스프레드 시트 내부의 버튼에 'showSidebar'기능을 할당하여 바로 가기를 만들 수 있습니다.

관련 문제