2012-10-13 3 views
0

내 목표는 다음과 같습니다. Google 문서에서 Google 스크립트를 실행하여 문서 섹션에 다음 몇 개의 이벤트를 채울 수 있기를 원합니다. 특정 Google 캘린더라고합니다.두 개의 캘린더에서 다가오는 이벤트 목록을 삽입하는 Google docs 스크립트

이것이 가능합니까?

  1. 문서 내에서 스크립트를 실행할 수 있습니까? 버튼이나 메뉴 항목에서? 이 작업을 수행하는 방법에 대한 설명서를 찾지 못했습니다.

  2. 스크립트에서 새 콘텐츠로 대체 할 문서의 특정 섹션을 타겟팅 할 수 있습니까? 모든 요소에 ID가 있습니까? 아니면 대상 요소에 사용자 지정 특성을 추가 할 수 있습니까?

감사합니다.

편집 :

나는 # 2를 해결하고 내가 원하는대로 모두 실행을했습니다. Google 스크립트 편집기에서 특정 문서를 타겟팅하고 원하는 콘텐츠를 원하는 위치로 푸시 할 수 있습니다.

왼쪽은 문서에서 스크립트를 실행할 수 있도록 모든 문서에 연결하는 것입니다.

편집 : 대답은 Google 문서 스크립트를 호스트 할 수 있다는 것입니다 같은

는 # 1의 경우, 그것은 보인다. 하지만 일반 스크립트를 만들 수 있으며, 그로부터 내 문서를 열고 조작 할 수 있습니다.

+0

'문서'는 텍스트 문서를 의미합니다 (질문의 다른 요소가 확인하는 것처럼 보이기 때문에) 문서에 스크립트를 삽입 할 수있는 방법이 없습니다. 사용자 인터페이스 (또는 스프레드 시트)로 독립 실행 형 웹 응용 프로그램을 사용하고 여기에서 문서에 액세스해야합니다. –

+0

"Google 문서"는 Google 문서를 의미합니다. –

답변

1

문서에서 실행하려면 필요합니까? 다가오는 이벤트 목록을 찾고 있습니까? 왜 웹 앱으로 사용하지 않습니까? HTML 템플릿 파일과 짝을 지어서 이벤트가있는 문자열을 작성한 후 HTMLService을 사용하여 최종 결과를 생성 할 수 있습니다.

0

# 2의 경우 문서의 표를 검색하여 표의 첫 번째 셀에서 특정 텍스트를 찾습니다. 따라서이 루틴은 업데이트해야하는 테이블을 가져옵니다.

var targetFirstCellText = 'Date'; 

function findTableInDoc(docId){ 
    var doc = DocumentApp.openById(docId); 
    var tables = doc.getTables(); 
    var table = null; 
    var found = false; 
    for(var t=0;!found && t<tables.length;t++){ 
    table = tables[t]; 
    var firstCellText = table.getCell(0,0).getText(); 
    if(firstCellText==targetFirstCellText){ 
     found = true; 
    } 
    } 
    return table; 
} 

그런 다음 새 행을 추가하기 전에이를 실행합니다. (다른 방법으로도 수행 할 수 있습니다.이 작업은 빠르고 쉽습니다.)

while(table.getNumRows()>1){ 
    table.getRow(1).removeFromParent(); 
} 
관련 문제