본문 바로가기

컴퓨터 활용/구글스프레드시트 응용

구글 스프레드 시트에서 체크박스 다루기 4 - 선택 후 라인삭제하기

체크박스를 선택후 실행하기 메뉴에서 선택삭제를 누르면 행이 삭제되는 예제입니다.

시트 제외는 하지 않았으므로 현재 선택 시트에서 실행 됩니다. 

/*
 * 체크 된 행 삭제 하기
 * 
 */
function deleteRowChecked() 
{

  var sheet = SpreadsheetApp.getActive().getActiveSheet(); // 현재 선택된 시트
  var rows = sheet.getDataRange().getValues(); // 데이터가 들어있는 테이블
  var headers = rows.shift(); // 헤더 없에기 rows 배열에 1행 삭제 
  
  for(var r=0; r < rows.length;r++)
  {
    Logger.log(r + ")" + rows[r][0]);

    if(rows[r][0]=== true) 
    {
      // r+2 는 인덱스가 0부터 시작하고 1행을 제외 했기 때문 
      Logger.log( (r+2) + "행 삭제" ) 
      sheet.deleteRow(r+2); // 행이 삭제 되면 행 위치가 변하므로 
      Utilities.sleep(1000); // 삭제 처리될 시간 감안 

      deleteRowChecked(); // 재귀함수 형태로 실행 후 빠져나옴
      break;
    }
  } 
}

삭제 후에 행 번호가 변하므로 재귀함수 형태로 구현

rows[r][0] 은 체크박스 2행부터 마지막행까지 루프를 돌리고 체크가 되어 있는 행이 나오면 바로 삭제 deleteRow()후에
동일함수 실행 후 빠져나옴.

예제는 다음 시트에 있습니다. 

https://docs.google.com/spreadsheets/d/1MbsSABTjB1bvNUXTC8Ur5EJY65YkJSwRa0GMN2JDxIE/edit#gid=1459606208

 

체크박스 다루기

체크박스구현 종목명,종목코드,현재가,등락률,전일대비,전일주가,거래량,시장정보,기준일시,수집일시 현대차,005380,196,000,0.00%,0,196,000,599,309,코스피,2022-08-01 16:12:00,2022-08-01 16:27:06 삼성전자,005930,

docs.google.com