2017-01-30 3 views
0

템플릿을 기반으로 한 새로운 Google 슬라이드 파일을 만들었습니다. 소스 시트가 변경되면 포함 된 차트가 업데이트되지 않도록해야합니다 (기본 보고서가 변경되는 월간 보고서 용). 정기적으로).Google Slides API에서 차트 속성 변경

Google Apps Script 라이브러리 용 Google 슬라이드 API (Wesley Chun과 Martin Hawksey 덕분에)를 사용 중이며 텍스트 작업을 검색하고 바꿀 수 있습니다. 그러나 차트 속성을 변경할 수있는 라이브러리가 보이지 않습니다. 새 차트를 만들거나 강제로 새로 고칠 수 있습니다.

감사합니다.

+0

Google Charts를 사용자 정의하는 방법에 대해이 [documentation] (https://developers.google.com/chart/interactive/docs/customizing_charts)를 확인 했습니까? Google 차트 도구를 기본 설정으로 사용할 수 있습니다. 모든 맞춤 설정은 선택 사항이며 기본 설정은 시작 준비 상태입니다. 그러나 웹 페이지가 제공되는 기본값과 일치하지 않는 스타일을 채택하는 경우 차트를 쉽게 사용자 지정할 수 있습니다. 이 [관련 SO 스레드] (http://stackoverflow.com/questions/28753125/)에서 Apps Script를 사용하여 Google 차트를 사용자 정의 할 수도 있습니다. – abielita

답변

1

기존 차트의 연결을 해제하여 사용자가 새로 고치는 것을 방지하기위한 API 지원이 없습니다. 최선의 방법은 차트를 삭제하고 마지막 프리젠 테이션에서 차트를 다시 만들 가능성이 높습니다. 차트 ID, 스프레드 시트 ID 및 페이지 요소 변환을 presentation.get() 또는 presentation.pages.get()으로 가져와 위치 및 내용을 보존하기 위해 차트를 다시 삽입 할 수 있어야합니다.

0

다음은 슬라이드 파일의 모든 차트를 삭제하고 다시 작성한 것입니다.

for (var j in SLIDES.presentationsGet(DECK_ID).slides) { 
    var slide = SLIDES.presentationsGet(DECK_ID).slides[j]; 
    for (var i in slide['pageElements']){ 
    var obj = slide['pageElements'][i]; 
    if (obj['sheetsChart']) { 

     // delete it and recreate as static image 
     var reqs = [ 
     {'deleteObject': {'objectId': obj['objectId']}}, 
     {'createSheetsChart': { 
      'spreadsheetId' : obj["sheetsChart"]["spreadsheetId"], 
      'chartId' : obj["sheetsChart"]["chartId"], 
      'elementProperties' : { 
      'pageObjectId': slide['objectId'], 
      'size' : obj["size"], 
      'transform' : obj["transform"], 
      } 
     } 
     } 
    ]; 
    SLIDES.presentationsBatchUpdate(DECK_ID, {'requests': reqs}) 
    } 
}