ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 구글 시트에서 데이터를 가져왔을 때 셀의 크기를 고정하는 방법
    AppsScript 2023. 12. 1. 19:26

    oogle Apps Script를 사용하여 Google 스프레드시트의 셀 크기를 고정하고 데이터가 넘쳐도 셀 크기가 변하지 않게 설정하려면, setRowHeight와 setColumnWidth 메서드를 사용할 수 있습니다. 이 메서드들은 특정 행과 열의 높이와 너비를 지정한 값으로 설정합니다.

     

    또한, 셀에 들어가는 데이터가 셀 크기를 넘어가면 자동으로 줄바꿈되도록 setWrap 속성을 true로 설정할 수 있습니다.

     

    다음은 이러한 설정을 적용하는 간단한 예제 코드입니다:

     

    function setCellSize() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    
       // 특정 행의 높이 설정
      var rowHeight = 40; // 예: 40픽셀
      sheet.setRowHeight(1, rowHeight); // 1번 행의 높이를 40픽셀로 설정
    
      // 특정 열의 너비 설정
      var columnWidth = 100; // 예: 100픽셀
      sheet.setColumnWidth(1, columnWidth); // A열(1번 열)의 너비를 100픽셀로 설정
    
      // 데이터가 셀 크기를 넘어갈 때 자동으로 줄바꿈 설정
      var range = sheet.getRange("A1:B10"); // 예: A1부터 B10까지의 범위
      range.setWrap(true);
    }
    
    // 스크립트 실행
    setCellSize();

     

    이 스크립트를 실행하면, 지정된 행과 열의 크기가 고정되고, 선택된 범위 내 셀들은 데이터가 넘쳐도 크기가 변하지 않고 줄바꿈됩니다. 필요에 따라 행, 열의 번호나 크기, 범위를 조정하여 사용하세요.👍

    A screenshot of a Google Apps Script editor with code written for setting row height in a Google Spreadsheet.
    A screenshot of a Google Apps Script editor with code written for setting row height in a Google Spreadsheet.

     

    자동화 상황에서 최적화

    높이가 변경되지 않은 경우에는 스크립트가 실행되지 않도록 하기 위해, 현재 행의 높이를 체크하고 설정하려는 높이와 비교하는 조건을 추가할 수 있습니다. 이를 통해 불필요한 실행을 방지하여 최적화할 수 있습니다.

     

    아래의 예제 코드는 특정 행의 현재 높이를 확인하고, 설정하려는 높이와 다를 경우에만 높이를 변경합니다:

     

    function setCellSize() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    
      // 설정하려는 행의 높이
      var targetRowHeight = 40; // 예: 40픽셀
    
      // 체크하려는 행 번호
      var rowNumber = 1;
    
      // 현재 행의 높이 확인
      var currentRowHeight = sheet.getRowHeight(rowNumber);
    
      // 현재 행의 높이가 설정하려는 높이와 다를 경우에만 변경
      if (currentRowHeight !== targetRowHeight) {
        sheet.setRowHeight(rowNumber, targetRowHeight);
      }
    
      // ... 열 너비 설정 및 자동 줄바꿈 설정 코드 ...
    }
    
    // 스크립트 실행
    setCellSize();

    이 코드는 1번 행의 현재 높이를 확인하고, 이 높이가 40픽셀과 다를 경우에만 높이를 조정합니다. 필요에 따라 행 번호와 타겟 높이를 조정하여 사용할 수 있습니다. 이와 유사한 방식으로 열 너비에 대해서도 최적화할 수 있습니다.

     

    데이터가 있는데까지 확인하고 수정하기

    Google Apps Script를 사용하여 스프레드시트에서 데이터가 있는 행의 높이를 조정하려면, 먼저 데이터가 존재하는 마지막 행을 찾아야 합니다. 이를 위해 getLastRow() 메서드를 사용할 수 있습니다. 이 메서드는 데이터가 있는 마지막 행의 번호를 반환합니다.

     

    예제 코드

     

    function setDynamicRowHeight() {
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    
      // 설정하려는 행의 높이
      var targetRowHeight = 40; // 예: 40픽셀
    
      // 데이터가 있는 마지막 행 찾기
      var lastRow = sheet.getLastRow();
    
      // 데이터가 있는 모든 행에 대해 높이 설정
      for (var i = 1; i <= lastRow; i++) {
        var currentRowHeight = sheet.getRowHeight(i);
       
        // 현재 행의 높이가 설정하려는 높이와 다를 경우에만 변경
        if (currentRowHeight !== targetRowHeight) {
          sheet.setRowHeight(i, targetRowHeight);
        }
      }
    }
    
    // 스크립트 실행
    setDynamicRowHeight();

    이 스크립트는 데이터가 있는 모든 행에 대해 현재 높이를 확인하고, 설정하려는 높이와 다를 경우에만 높이를 조정합니다. 이 방법은 데이터가 있는 모든 행에 대해 실행되므로, 특히 많은 데이터가 있는 스프레드시트에서는 실행 시간이 길어질 수 있습니다. 필요에 따라 스크립트를 수정하여 사용하세요. 👏

     
Designed by Tistory.