【GAS】스프레드시트를 이미지 보존할 수 없는 벽을 극복(Google 슬라이드 이용)

요약



이 페이지 정보


  • 스프레드 시트의 이미지 저장은 API가 제공되지 않기 때문에 시행 착오의 결과를 비망록적으로

  • 결론


  • Google 스프레드시트의 데이터를 Google 프레젠테이션에 연결하여 이미지로 저장하면 이미지 저장이 가능!
  • Slack으로 송신하거나, 그 후의 활용 가능성은 높아진다고 생각합니다!

  • 준비하는 것


  • Google 스프레드시트
  • 저장할 데이터 등이 있는 시트
  • 이후, 여기가있는 전제로 진행합니다

  • Google 프레젠테이션
  • 이미지 저장을위한 슬라이드
  • 저장할 크기로 설정해야 합니다


  • 해설



    1: 화상 보존하고 싶은 데이터의 그래프화


  • 스프레드 시트 데이터 중 이미지 저장을 그래프로 표시합니다.
  • 테이블 및 개별 숫자는 "표 그래프", "스코어 카드 그래프"등을 사용하는 것이 좋습니다.
  • ※GAS로 GoogleSlide에 전기하는 방법도 있습니다만, 이번은 이 방법으로 설명합니다


  • 2:슬라이드에 그래프의 링크 작성


  • 스프레드 시트에 만든 그래프를 복사하여 붙여 넣습니다
  • 이 때 "스프레드 시트에 링크"를 선택하십시오
  • 복수 그래프가 있는 경우는, 저장하고 싶은 이미지에 맞추어 레이아웃을 실시해 간다


  • 3. GAS 설명


  • 이번에는 스프레드 시트 측에 GAS를 작성합니다.
  • 에러 처리등은 할애하고 있기 때문에, 좋아.
  • 「저장처의 폴더 ID」는
  • Google 드라이브의 "drive.google.com/drive/folders/★ 여기 ★"← "여기"에 쓰여진 문자열입니다

  • 「저장할 슬라이드의 ID」는
  • Google 프레젠테이션의 "docs.google.com/presentation/d/★ 여기 ★/edit # slide = id.p"← "여기"에 쓰여진 문자열입니다


  • gas
    /***
     * 対象スライドのリンクしているグラフを全部更新して、指定のGoogleドライブへ保存
     * 
     * @param fileName 保存したいファイル名
     */
    function exportSlideToPNG(fileName){
    
      const folderId = '保存先のフォルダID';
      const format = 'png';
    
      const slideId = "保存するスライドのID";
      const presentation = SlidesApp.openById(slideId);
      const slides = presentation.getSlides();
    
      const slide = slides[0];
      const sheetCharts = slide.getSheetsCharts();
    
      // update
      for (var i = 0; i<sheetCharts.length; i++){
        sheetCharts[i].refresh();
      }
    
      // flush
      presentation.saveAndClose();
    
      // output
      const url = "https://docs.google.com/presentation/d/" + slideId + "/export/" + format;
      const options = {
        method: "get",
        headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
        muteHttpExceptions: true
      };
    
      const res = UrlFetchApp.fetch(url, options);
      if (res.getResponseCode() === 200) {
        const folder = DriveApp.getFolderById(folderId);
        folder.createFile(res.getBlob()).setName(fileName + "." + format);  
      }
    }
    

    참고


  • 공식 참조
  • htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 아 ps-sc 리 pt / 레후 렌세 / s ぃ에서 s / s ぃ에서 s- 아 p

  • 좋은 웹페이지 즐겨찾기