[]
데이터 유효성 검사는 셀에 입력된 데이터가 특정 기준 또는 규칙을 충족하는지 확인하는 데 도움을 줍니다. 템플릿 시트(TemplateSheet)에서는 일반 워크시트와 동일한 방식으로 데이터 유효성 검사를 설정할 수 있지만, 보고서가 생성될 때 유효성 검사의 적용 범위는 달라질 수 있습니다.
템플릿 시트에서는 다양한 유효성 검사를 설정할 수 있으며, 이 유효성 검사는 템플릿 시트 상에서 유효하지만 리포트 시트(ReportSheet)의 렌더 모드를 Preview로 전환하면 성능이 향상됩니다.
참고:
템플릿 시트에서 데이터 유효성 검사가 설정된 셀이 확장되지 않은 셀인 경우, 리포트 시트에서 해당 유효성 검사 범위의 크기는 변하지 않지만, 셀 확장의 기준이 되는 좌상단 셀에 따라 위치가 오프셋될 수 있습니다.
템플릿 시트에서 데이터 유효성 검사가 설정된 셀이 확장된 셀인 경우, 리포트 시트에서 해당 유효성 검사 범위는 템플릿 셀의 확장 방식에 따라 크기가 변경되며, 이 경우에도 위치 오프셋이 발생할 수 있습니다.
다음 코드는 숫자가 5 이상이어야 한다는 조건을 가진 number validator를 설정하는 예시입니다:
const dv = GC.Spread.Sheets.DataValidation.createNumberValidator(
GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.greaterThanOrEqualsTo, 5, 5, false
);
// 입력 메시지 구성
dv.showInputMessage(true);
dv.inputTitle("Tip");
dv.inputMessage("Value must be greater than or equal to 5");
// 셀 (2, 3)에 숫자 유효성 검사기 적용
// 유효성 검사는 컬럼 전체로 확장됨
templateSheet.getRange(2, 3, 1, 1).validator(dv);
// 유효성 검사 실패 시 적용할 스타일 설정
const invalidStyle = new GC.Spread.Sheets.Style();
const redBorder = new GC.Spread.Sheets.LineBorder('red', 5);
invalidStyle.borderTop = redBorder;
invalidStyle.borderBottom = redBorder;
invalidStyle.borderLeft = redBorder;
invalidStyle.borderRight = redBorder;
const range = new GC.Spread.Sheets.Range(2, 3, 1, 1);
// 유효성 검사 실패 상태에 스타일 적용
templateSheet.cellStates.add(range, GC.Spread.Sheets.CellStatesType.invalid, invalidStyle);
// 유효성 검사 실패 이벤트 처리
spread.bind(GC.Spread.Sheets.Events.ValidationError, function (sender, args) {
console.log(`Data Validation fails: RowIndex: ${args.row}, ColIndex: ${args.col}`);
});
위 코드 실행 결과는 다음과 같습니다: