Java - Excel에서 데이터 유효성 검사를 적용하거나 제거하는 방법

Excel의 데이터 유효성 검사 기능을 사용하면 특정 셀에 입력할 수 있거나 입력해야 하는 데이터를 제한할 수 있습니다. 예를 들어, Excel을 통해 사용자의 제품 만족도 지수를 수집할 때 1-10 사이의 숫자를 입력하도록 할 수 있습니다.

이 문서에서는 Excel 셀에 다양한 종류의 데이터 유효성 검사(숫자 유효성 검사, 텍스트 길이 유효성 검사, 날짜 유효성 검사, 시간 유효성 검사 및 목록 유효성 검사 포함)를 적용하는 방법과 지정된 셀에서 데이터 유효성 검사를 제거하는 방법을 알아봅니다. Spire.XLS for Java을 사용합니다.

Spire.Xls jar를 종속성으로 추가



Maven 프로젝트에서 작업하는 경우 다음을 사용하여 pom.xml 파일에 종속성을 포함할 수 있습니다.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>12.8.4</version>
    </dependency>
</dependencies>


maven을 사용하지 않는 경우 this location 에서 제공되는 zip 파일에서 필요한 jar 파일을 찾을 수 있습니다. 이 자습서에 제공된 샘플 코드를 실행하려면 모든 jar 파일을 애플리케이션 lib 폴더에 포함합니다.

Excel 셀에 데이터 유효성 검사 적용



다음은 Java용 Spire.XLS를 사용하여 다양한 유형의 데이터 유효성 검사를 셀에 추가하는 단계입니다.
  • 통합 문서 객체 생성
  • Workbook.getWorksheets().get() 메서드를 사용하여 첫 번째 워크시트를 가져옵니다.
  • Worksheet.getCellRange() 메서드를 사용하여 특정 셀 범위를 가져와 데이터 유효성 검사를 추가합니다.
  • CellRange.getDataValidation().setAllowType() 메서드를 사용하여 셀에서 허용되는 데이터 유형을 설정합니다. Integer, Time, Date, TextLength, Decimal 등을 데이터 유형으로 선택할 수 있습니다.
  • CellRange.getDataValiation().setCompareOperator() 메서드를 사용하여 비교 연산자를 설정합니다. 비교 연산자에는 Between, NotBetween, Less, Greater 및 Equal이 포함됩니다.
  • CellRange.getDataValidation().setFormula1() 및 CellRange.getDataValidation().setFormula2() 메서드를 사용하여 데이터 유효성 검사를 위한 하나 또는 두 개의 수식을 설정합니다.
  • CellRange.getDataValidation().setInputMessage() 메서드를 사용하여 입력 프롬프트를 설정합니다.
  • Workbook.saveToFile() 메서드를 사용하여 통합 문서를 Excel 파일에 저장합니다.

  • import com.spire.xls.*;
    
    public class ApplyDataValidation {
    
        public static void main(String[] args) {
    
            //Create a Workbook object
            Workbook workbook = new Workbook();
    
            //Get the first worksheet
            Worksheet sheet = workbook.getWorksheets().get(0);
    
            //Insert text in cells
            sheet.getCellRange("B2").setText("Input a number:");
            sheet.getCellRange("B4").setText("Input a date:");
            sheet.getCellRange("B6").setText("Input text:");
            sheet.getCellRange("B8").setText("Select an item from the list:");
            sheet.getCellRange("B10").setText("Input a time:");
    
            //Add a number validation to C2
            CellRange rangeNumber = sheet.getCellRange("C2");
            rangeNumber.getDataValidation().setAllowType(CellDataType.Integer);
            rangeNumber.getDataValidation().setCompareOperator(ValidationComparisonOperator.Between);
            rangeNumber.getDataValidation().setFormula1("1");
            rangeNumber.getDataValidation().setFormula2("10");
            rangeNumber.getDataValidation().setInputMessage("Enter a number between 1 and 10");
            rangeNumber.getStyle().setKnownColor(ExcelColors.BlueGray);
    
            //Add a date validation to C4
            CellRange rangeDate = sheet.getCellRange("C4");
            rangeDate.getDataValidation().setAllowType(CellDataType.Date);
            rangeDate.getDataValidation().setCompareOperator(ValidationComparisonOperator.Between);
            rangeDate.getDataValidation().setFormula1("1/1/2010");
            rangeDate.getDataValidation().setFormula2("12/31/2020");
            rangeDate.getDataValidation().setInputMessage("Enter a date between 1/1/2010 and 12/31/2020");
            rangeDate.getStyle().setKnownColor(ExcelColors.BlueGray);
    
            //Add a text length validation to C6
            CellRange rangeTextLength = sheet.getCellRange("C6");
            rangeTextLength.getDataValidation().setAllowType(CellDataType.TextLength);
            rangeTextLength.getDataValidation().setCompareOperator(ValidationComparisonOperator.LessOrEqual);
            rangeTextLength.getDataValidation().setFormula1("5");
            rangeTextLength.getDataValidation().setInputMessage("Enter text lesser than 5 characters");
            rangeTextLength.getStyle().setKnownColor(ExcelColors.BlueGray);
    
            //Apply a list validation to C8
            CellRange rangeList = sheet.getCellRange("C8");
            rangeList.getDataValidation().setValues(new String[] { "United States", "Canada", "United Kingdom", "Germany" }) ;
            rangeList.getDataValidation().isSuppressDropDownArrow(false);
            rangeList.getDataValidation().setInputMessage("Choose an item from the list");
            rangeList.getStyle().setKnownColor(ExcelColors.BlueGray);
    
            //Apply a time validation to C10
            CellRange rangeTime = sheet.getCellRange("C10");
            rangeTime.getDataValidation().setAllowType(CellDataType.Time);
            rangeTime.getDataValidation().setCompareOperator(ValidationComparisonOperator.Between);
            rangeTime.getDataValidation().setFormula1("9:00");
            rangeTime.getDataValidation().setFormula2("12:00");
            rangeTime.getDataValidation().setInputMessage("Enter a time between 9:00 and 12:00");
            rangeTime.getStyle().setKnownColor(ExcelColors.BlueGray);
    
            //Auto fit width of column 2
            sheet.autoFitColumn(2);
    
            //Set the width of column 3
            sheet.getColumns()[2].setColumnWidth(20);
    
            //Save to file
            workbook.saveToFile("ApplyDataValidation.xlsx", ExcelVersion.Version2016);
        }
    }
    


    산출





    Excel 셀에서 데이터 유효성 검사 제거



    다음은 Java용 Spire.XLS를 사용하여 지정된 셀에서 데이터 유효성 검사를 제거하는 단계입니다.
  • 통합 문서 개체를 만듭니다.
  • Workbook.loadFromFile() 메서드를 사용하여 데이터 유효성 검사가 포함된 Excel 파일을 로드합니다.
  • Workbook.getWorksheets().get() 메서드를 사용하여 첫 번째 워크시트를 가져옵니다.
  • 유효성 검사가 제거될 셀을 찾는 데 사용되는 사각형 배열을 만듭니다.
  • Worksheet.getDVTable().remove() 메서드를 사용하여 선택한 셀에서 데이터 유효성 검사를 제거합니다.
  • Workbook.saveToFile() 메서드를 사용하여 통합 문서를 다른 Excel 파일에 저장합니다.

  • import com.spire.xls.Workbook;
    import com.spire.xls.Worksheet;
    
    import java.awt.*;
    
    public class RemoveDataValidation {
    
        public static void main(String[] args) {
    
            //Create a Workbook object
            Workbook workbook = new Workbook();
    
            //Load a sample Excel file
            workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\ApplyDataValidation.xlsx");
    
            //Get the first worksheet
            Worksheet worksheet = workbook.getWorksheets().get(0);
    
            //Create an array of rectangles, which is used to locate the ranges in worksheet.
            Rectangle[] rectangles = new Rectangle[]{
    
                    //One Rectangle(columnIndex, rowIndex) specifies a specific cell,the column or row index starts at 0
                    //To specify a cell range, use Rectangle(startColumnIndex, startRowIndex, endColumnIndex, endRowIndex)
                    new Rectangle(2,1),
                    new Rectangle(2,3),
                    new Rectangle(2,5),
                    new Rectangle(2,7),
                    new Rectangle(2,9)
            };
    
            //Remove the data validation from the selected cells
            worksheet.getDVTable().remove(rectangles);
    
            //Save the workbook to an Excel file
            workbook.saveToFile("RemoveDataValidation.xlsx");
        }
    }
    


    산출



    좋은 웹페이지 즐겨찾기