구글 스프레드 시트에서는 체크박스만 존재하고 라디오 박스는 없습니다.
행별로 하나만 선택이 가능한 라디오 박스를 구현하는 예제 입니다.
예제는 다음 시트에 있습니다.
https://docs.google.com/spreadsheets/d/1MbsSABTjB1bvNUXTC8Ur5EJY65YkJSwRa0GMN2JDxIE/edit#gid=2066913012
체크박스 다루기
체크박스구현 종목명,종목코드,현재가,등락률,전일대비,전일주가,거래량,시장정보,기준일시,수집일시 현대차,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
/*
* 구글 시트에서 라디오 박스 구현
*/
function ensureSingleCheckboxChecked(e)
{
var sheet = e.range.getSheet();
if(sheet.getName() !="라디오박스구현") return; // 라디오박스 구현 시트에만 적용
if(e != null && // 이벤트가 동작하고
e.range.rowStart === e.range.rowEnd && // 수정된 시작행 , 끝 행
e.range.columnStart === 1 && // 수정된 시작열
e.range.columnEnd === 1) // 수정된 끝 열
{
if(e.oldValue === "false" && e.value === "TRUE") { // 이전 값이 false 이고 새 값이 true 이면
uncheckOtherCheckboxes(e.range.rowStart); // 시작 행을 매개변수로 전달
}
}
}
function uncheckOtherCheckboxes(ignoreRow)
{
var range = SpreadsheetApp.getActive().getSheetByName("라디오박스구현").getRange("A:A");
var values = range.getValues();
// 배열(체크박스있는 열)을 루프 돌려서 선택된
values.forEach(function (row, rowinx)
{
if(rowinx != 0 && ignoreRow != (rowinx + 1)) { // 첫 행제외, 무시할 열이 아니면 모두 언체크
values[rowinx][0] = false;
}
});
range.setValues(values);
}
/**
다음 ensureSingleCheckboxChecked 함수를 수정 트리거에 걸어주면 동작 됩니다.
ScriptApp.newTrigger("ensureSingleCheckboxChecked")
.forSpreadsheet(SpreadsheetApp.getActive()).onEdit().create();
*/
e.range.rowStart = 선택된 시작행
e.range.rowEnd = 선택된 끝 행
e.range.columnStart = 선택된 시작열
e.range.columnEnd = 선택된 끝 열
e.OldValue 는 수정전 셀에 있던 값 / e.value
수정된 셀 값 : FALSE , TRUE 이면 체크된 상태를 의미함
동작방식
1. 수정 모드로 트리거가 동작되면 첫 행을 제외하고 나머지 1 열의 체크 박스가 체크 될 때 이벤트가 발생
2. 현재 행, 열의 체크 박스가 클릭 될 때 이전 값이 FALSE 에서 TRUE로 변경(체크될 때) 행번호를 알아냄
3. uncheckOtherCheckboxes 함수의 매개변수로 행번호가 들어 가서 해당 행만 놔두고 나머지는 언체크 함.
위의 소스는 SpreadSheet Dev 를 참고 했습니다
Radio buttons in Google Sheets using Apps Script
Radio buttons in Google Sheets using Apps Script A radio button is a user interface element that lets users select a single option from a number of different (and usually mutually exclusive) options. In this tutorial, I will show you how to build radio-but
spreadsheet.dev
'컴퓨터 활용 > 구글스프레드시트 응용' 카테고리의 다른 글
구글 스프레드 시트에서 체크박스 다루기 5 - 검색 후 체크박스 선택 (0) | 2022.08.17 |
---|---|
구글 스프레드 시트에서 체크박스 다루기 4 - 선택 후 라인삭제하기 (0) | 2022.08.14 |
구글 스프레드시트에서 체크박스 다루기 2 - 토글 스위치(toggle Switch) (0) | 2022.08.12 |
구글 스프레드 시트에서 체크박스 다루기 1 - 전체 선택, 해제 / 구글 앱스 스크립트 (0) | 2022.08.10 |
구글 앱스 스크립트로 차트 그리기 (0) | 2022.07.15 |