-
구글 시트에서 데이터를 가져왔을 때 셀의 크기를 고정하는 방법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();
이 스크립트를 실행하면, 지정된 행과 열의 크기가 고정되고, 선택된 범위 내 셀들은 데이터가 넘쳐도 크기가 변하지 않고 줄바꿈됩니다. 필요에 따라 행, 열의 번호나 크기, 범위를 조정하여 사용하세요.👍
자동화 상황에서 최적화
높이가 변경되지 않은 경우에는 스크립트가 실행되지 않도록 하기 위해, 현재 행의 높이를 체크하고 설정하려는 높이와 비교하는 조건을 추가할 수 있습니다. 이를 통해 불필요한 실행을 방지하여 최적화할 수 있습니다.
아래의 예제 코드는 특정 행의 현재 높이를 확인하고, 설정하려는 높이와 다를 경우에만 높이를 변경합니다:
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();
이 스크립트는 데이터가 있는 모든 행에 대해 현재 높이를 확인하고, 설정하려는 높이와 다를 경우에만 높이를 조정합니다. 이 방법은 데이터가 있는 모든 행에 대해 실행되므로, 특히 많은 데이터가 있는 스프레드시트에서는 실행 시간이 길어질 수 있습니다. 필요에 따라 스크립트를 수정하여 사용하세요. 👏