데이터 유효성 검사 작업

데이터 유효성 검사 작업

데이터 유효성 검증 작업

Aspose.Cells FOSS for C++는 ValidationValidationCollection 클래스를 통해 워크시트에 셀 수준 데이터 유효성 검사 규칙을 추가하는 것을 지원합니다. WorkbookValidator 클래스는 저장 전 일관성 검사를 제공합니다.


유효성 검사 규칙 추가

워크시트의 유효성 검사 컬렉션에 접근하고 ValidationCollection::Add()을 사용하여 새 규칙을 추가합니다. 반환된 Validation 객체에서 유형, 수식 및 대상 영역을 설정합니다:

#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/ValidationCollection.h"
#include "aspose/cells_foss/Validation.h"
#include "aspose/cells_foss/CellArea.h"

using namespace Aspose::Cells_FOSS;

int main() {
    Workbook workbook;
    Worksheet& sheet = workbook.GetWorksheets()[0];
    ValidationCollection& validations = sheet.GetValidations();

    int idx = validations.Add();
    Validation& v = validations[idx];

    v.SetType(ValidationType::WholeNumber);
    v.SetFormula1("1");
    v.SetFormula2("100");
    v.SetIgnoreBlank(true);
    v.SetInCellDropDown(false);
    v.SetInputTitle("Enter Value");
    v.SetInputMessage("Value must be between 1 and 100.");
    v.SetErrorTitle("Invalid Input");
    v.SetErrorMessage("Value is out of range.");
    v.SetShowInput(true);
    v.SetShowError(true);

    CellArea area = CellArea::CreateCellArea("B2", "B10");
    v.AddArea(area);

    workbook.Save("validated.xlsx");
    return 0;
}

유효성 검사 유형

ValidationType 열거형은 적용할 수 있는 제약 조건의 종류를 정의합니다:

ValidationType설명
WholeNumber정수 값 제약
Decimal부동소수점 제약
List수식 또는 범위에서 가져온 드롭다운 목록
Date날짜 값 제약
TextLength문자열 길이 제한
Custom수식 기반 사용자 정의 규칙

알림 스타일

ValidationAlertType 열거형은 검증이 실패했을 때 표시되는 동작을 제어합니다:

AlertStyleBehavior
Stop입력을 차단하고 오류 대화 상자를 표시합니다
Warning경고를 표시합니다; 사용자는 수락하거나 거부할 수 있습니다
Information정보 툴팁을 표시합니다

Validation::SetAlertStyle(ValidationAlertType) 로 알림 스타일을 설정합니다.


셀에서 검증 조회

ValidationCollection::GetValidationInCell(row, col) 를 사용하여 특정 셀에 적용되는 검증 규칙을 찾습니다. 규칙이 적용되지 않으면 nullptr 를 반환합니다.


검증 규칙 제거

특정 셀 또는 범위 영역에서 검증을 제거합니다:

CellArea area = CellArea::CreateCellArea("B2", "B10");
validations.RemoveArea(area);
// Or remove a single cell:
validations.RemoveACell(1, 1); // row=1, col=1 (0-based)

저장 전 워크북 검증

WorkbookValidator::ValidateForSave 를 호출하여 저장 전에 워크북 모델에 대한 일관성 검사를 실행합니다. 이는 Workbook::Save 에 의해 자동으로 호출되지만 개발 중에 독립적으로 호출할 수도 있습니다:

WorkbookValidator validator;
validator.ValidateForSave(workbook);

팁 및 모범 사례

  • 범위 유형 유효성 검사를 위해 SetFormula1SetFormula2을 모두 설정하고 (WholeNumber, Decimal, Date) 하한과 상한을 정의하십시오.
  • SetIgnoreBlank(true)를 사용하면 빈 셀을 오류 없이 유효성 검사를 통과하도록 허용할 수 있습니다.
  • 새 규칙을 추가하기 전에 ValidationCollection::AreasOverlap를 호출하여 동일한 시트에서 겹치는 유효성 검사 영역이 있는지 확인합니다.
  • WorkbookValidator::ValidateForSave는 저장 시 내부적으로 호출됩니다; 개발 중에 호출하여 문제를 조기에 발견하십시오.

일반적인 문제

문제원인수정
셀에 검증이 적용되지 않음영역이 추가되지 않음대상 범위와 함께 Validation::AddArea(area)를 호출합니다
드롭다운이 표시되지 않음SetInCellDropDown(false)목록 검증을 위해 SetInCellDropDown(true)을(를) 설정합니다.
규칙이 겹칩니다두 규칙이 같은 셀을 차지합니다충돌을 감지하고 해결하려면 AreasOverlap를 사용하세요
ValidateForSave가 실패합니다모델 불일치저장하기 전에 보고된 불일치를 검토하고 수정하세요

API Reference 요약

클래스/메서드설명
ValidationCollection::Add()새로운 빈 검증 규칙을 추가
ValidationCollection::GetValidationInCell(row, col)셀에 대한 검증 찾기
ValidationCollection::RemoveArea(area)범위에서 검증을 제거
ValidationCollection::RemoveACell(row, col)셀에서 유효성 검사를 제거
ValidationCollection::AreasOverlap겹치는 유효성 검사 영역을 확인
Validation::SetType(ValidationType)유효성 검사 유형을 설정합니다
Validation::SetFormula1(expr)하한값 또는 목록 소스를 설정합니다
Validation::SetFormula2(expr)상한값을 설정합니다
Validation::AddArea(area)범위에 규칙을 적용
Validation::RemoveArea(area)범위에서 규칙을 제거합니다
Validation::SetAlertStyle(style)정지/경고/정보 동작을 설정합니다
WorkbookValidator::ValidateForSave저장 전 일관성 검사

참조

 한국어