본문 바로가기
자바(Java)

Java의 Excel에서 조건부 포맷을 사용하여 셀 강조 표시

by 코딩하는 욤욤이 2024. 2. 3.
반응형
 

Office 문서용 무료 .NET Java API 다운로드

 

Free .NET/JAVA Word, Excel, PDF, PowerPoint,Barcode Libraries

A free PDF Viewer library for developers to display, convert and print PDF documents on Windows Forms applications. Learn More Tutorials A free Word Viewer library for developers to display, convert and print Word documents on Windows Forms applications. L

www.e-iceblue.com

조건부 서식은 Excel 스프레드시트의 가장 강력한 기능 중 하나입니다. 

 

이름에서 알 수 있듯이 조건부 서식은 지정된 조건을 충족하는 정보를 강조 표시하는 데 사용됩니다. 

 

예를 들어 X보다 크고 Y보다 작은 값을 포함하는 모든 셀을 강조 표시할 수 있습니다.

 

조건부 서식은 대규모 워크시트에서 주요 정보를 찾을 때 매우 유용합니다. 이 문서에서는 Java 라이브러리용 Free Spire.XLS를 사용하여 Java에서 조건부 서식을 사용하여 셀을 강조 표시하는 방법을 보여주는 다음 6가지 예를 제공합니다 .

  • Excel에서 중복 값 강조 표시
  • Excel에서 상위/하위 3개 값 강조 표시
  • Excel에서 평균보다 높거나 낮은 값 강조 표시
  • Excel에서 두 숫자 사이의 값 강조 표시
  • Excel에서 다른 모든 행/열 강조 표시
  • Excel에서 셀 범위에 데이터 막대 추가

Java용 무료 Spire.XLS 설치

Free Spire.XLS for Java는 Java 애플리케이션에서 Excel 문서를 생성하고 조작하기 위한 무료 라이브러리입니다. 

 

E-ICEBLUE 공식 웹사이트에서 다운로드하여 jar 파일을 프로그램에 종속성으로 추가할 수 있습니다. 

 

Maven을 사용하는 경우 프로젝트의 pom.xml 파일에 다음 코드를 추가하여 애플리케이션에서 jar 파일을 쉽게 가져올 수 있습니다.

<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.free</artifactId>
        <verson>5.1.0</version>
    </dependency>
</dependencies>

 

전제 지식

Java용 무료 Spire.XLS는 Excel 문서의 조건부 서식을 처리하기 위해 XlsConditionalFormats 클래스를 제공합니다. 

 

먼저 XlsConditionalFormats 개체를 만들어야 합니다. 

 

그런 다음 조건부 서식이 적용될 셀 범위를 지정하고 이에 대한 기본 제공 또는 사용자 지정 조건을 설정할 수 있습니다. 

 

마지막으로 지정된 조건을 충족하는 셀에 글꼴 색상 및/또는 셀 색상을 적용할 수 있습니다. 

 

자세한 단계는 다음과 같습니다.

  • Workbook 클래스의 개체를 만듭니다. 
  • Workbook.loadFromFile() 메서드를 사용하여 Excel 문서를 로드합니다.
  • Worksheet.getConditionalFormats().add() 메서드를 사용하여 워크시트에 XlsConditionalFormats 개체를 추가합니다.
  • XlsConditionalFormats.addRange() 메소드를 이용하여 조건부 서식을 적용할 셀 범위를 지정합니다.
  • XlsConditionalFormats.addDuplicateValuesCondition(), XlsConditionalFormats.addTopBottomCondition() 등과 같은 메소드를 사용하여 기본 제공 조건을 추가합니다. 또는 XlsConditionalFormats.addContion() 메소드를 사용하여 사용자 정의 조건을 만들 수도 있습니다. 사용자 정의 조건을 사용하려면 하나 이상의 수식을 조건으로 설정해야 합니다. 
  • 조건에 맞는 셀에 글꼴 색상 및/또는 셀 색상을 적용합니다.
  • Workbook.SaveToFile() 메서드를 사용하여 통합 문서를 Excel 파일에 저장합니다.

예 1. Java의 Excel에서 중복 값 강조 표시

엑셀에서 데이터를 계산하거나 분석하기 전에 워크시트에 중복된 내용이 있는지 확인하고, 잘못 입력된 정보가 아닌지 확인하는 것이 중요합니다. 

 

다음 예에서는 Java의 조건부 서식을 사용하여 데이터 세트에서 중복 값을 식별하는 방법을 보여줍니다.

import com.spire.xls.*;
import com.spire.xls.core.IConditionalFormat;
import com.spire.xls.core.spreadsheet.collections.XlsConditionalFormats;

import java.awt.*;

public class HighlightDuplicates {

    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\\score sheet.xlsx");

        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Add a conditional format to the worksheet
        XlsConditionalFormats format = sheet.getConditionalFormats().add();

        //Set the range where the conditional format will be applied
        format.addRange(sheet.getRange().get("H4:H15"));

        //Add a duplicate value condition
        IConditionalFormat condition = format.addDuplicateValuesCondition();

        //Highlight the cells that meet the condition with light gray
        condition.setBackColor(Color.LIGHT_GRAY);

        //Save the workbook
        workbook.saveToFile("HighlightDuplicates.xlsx", ExcelVersion.Version2016);
    }
}
 

예 2. Java의 Excel에서 상위/하위 3개 값 강조 표시

Excel의 조건부 서식은 데이터 세트에서 상위 또는 하위 순위 값을 식별할 수 있습니다. 

 

이는 판매 데이터의 점수 또는 최고 거래 값을 기준으로 상위 후보자를 확인하려는 상황에서 유용합니다. 

 

다음 예에서는 조건부 서식을 사용하여 열의 상위 3개 값을 강조 표시하는 방법을 보여줍니다. 

import com.spire.xls.*;
import com.spire.xls.core.IConditionalFormat;
import com.spire.xls.core.spreadsheet.collections.XlsConditionalFormats;

import java.awt.*;

public class HighlightTop3 {

    public static void main(String[] args) {

        //Create a Workbook object
        Workbook workbook = new Workbook();

        //Load the sample Excel file
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\Score Sheet.xlsx");

        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Add a conditional format to the worksheet
        XlsConditionalFormats format = sheet.getConditionalFormats().add();

        //Set the range where the conditional format will be applied
        format.addRange(sheet.getRange().get("H4:H15"));

        //Add a top bottom condition, specifying Top 3
        IConditionalFormat condition = format.addTopBottomCondition(TopBottomType.Top,3);

        //Highlight the cells that meet the condition with red
        condition.setBackColor(Color.red);

        //Save the workbook
        workbook.saveToFile("HighlightTop3.xlsx", ExcelVersion.Version2016);
    }
}
 

예 3. Java의 Excel에서 평균보다 높거나 낮은 값 강조 표시

학생의 성적표에서 평균보다 높거나 낮은 값을 강조 표시하면 어떤 학생이 더 잘하고 있는지, 어떤 학생은 더 열심히 공부해야 하는지에 대한 빠른 개요를 얻을 수 있습니다. 

 

다음 예에서는 조건부 서식을 사용하여 평균보다 높은 값을 강조 표시하는 방법을 보여줍니다.

import com.spire.xls.*;
import com.spire.xls.core.IConditionalFormat;
import com.spire.xls.core.spreadsheet.collections.XlsConditionalFormats;

import java.awt.*;

public class HighlightValuesAboveAverage {

    public static void main(String[] args) {

        //Create a Workbook object
        Workbook workbook = new Workbook();

        //Load an Excel file
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\score sheet.xlsx");

        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Add a conditional format to the worksheet
        XlsConditionalFormats format = sheet.getConditionalFormats().add();

        //Set the range where the conditional format will be applied
        format.addRange(sheet.getRange().get("H4:H15"));

        //Add an average condition, specifying the average type to Above
        IConditionalFormat condition = format.addAverageCondition(AverageType.Above);

        //Highlight the cells that meet the condition with yellow
        condition.setBackColor(Color.yellow);

        //Save the workbook to an Excel file
        workbook.saveToFile("HighlightAboveAverage.xlsx", ExcelVersion.Version2016);
    }
}
 

예 4. Java의 Excel에서 두 숫자 사이의 값 강조 표시

두 숫자 사이의 값을 강조 표시하면 특정 데이터 범위 내에서 데이터를 빠르게 찾는 데 도움이 됩니다. 

 

다음 예에서는 Java에서 조건부 서식을 사용하여 90에서 100 사이의 숫자를 강조 표시하는 방법을 보여줍니다.

import com.spire.xls.*;
import com.spire.xls.core.IConditionalFormat;
import com.spire.xls.core.spreadsheet.collections.XlsConditionalFormats;

import java.awt.*;

public class HighlightBetweenValues {

    public static void main(String[] args) {

        //Create a Workbook object
        Workbook workbook = new Workbook();

        //Load an Excel file
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\score sheet.xlsx");

        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Add a conditional format to the worksheet
        XlsConditionalFormats format = sheet.getConditionalFormats().add();

        //Set the range where the conditional format will be applied
        format.addRange(sheet.getRange().get("E4:G15"));

        //Add a cell value condition, specifying the comparison operator type to between and specifying the two numbers
        IConditionalFormat condition = format.addCellValueCondition(ComparisonOperatorType.Between,90,100);

        //Apply format to the cells that meet the condition
        condition.setFontColor(Color.YELLOW);
        condition.setBackColor(Color.red);

        //Save the workbook to an Excel file
        workbook.saveToFile("HighlightBetweenValues.xlsx", ExcelVersion.Version2016);
    }
}
 

예 5. Java의 Excel에서 다른 모든 행/열 강조 표시

대체 행이나 열을 강조 표시하면 데이터의 가독성이 높아질 수 있습니다. 

 

이러한 얼룩말 선은 데이터를 인쇄할 때 특히 유용할 수 있습니다. 다음 예에서는 Java에서 조건부 형성을 사용하여 행 색상을 바꾸는 방법을 보여줍니다.

import com.spire.xls.ConditionalFormatType;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.IConditionalFormat;
import com.spire.xls.core.spreadsheet.collections.XlsConditionalFormats;

import java.awt.*;

public class HighlightAlternateRows {

    public static void main(String[] args) {

        //Create a Workbook object
        Workbook workbook = new Workbook();

        //Load an Excel file
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\score sheet.xlsx");

        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Add a conditional format to the worksheet
        XlsConditionalFormats format = sheet.getConditionalFormats().add();

        //Set the range where the conditional format will be applied
        format.addRange(sheet.getRange().get(4,1,sheet.getLastRow(),sheet.getLastColumn()));

        //Add a condition to highlight even rows with white
        IConditionalFormat condition1 = format.addCondition();
        condition1.setFormatType(ConditionalFormatType.Formula);
        condition1.setFirstFormula("=MOD(ROW(),2)=0");
        condition1.setBackColor(Color.white);

        //Add a condition to highlight odd rows with light gray
        IConditionalFormat condition2 = format.addCondition();
        condition2.setFormatType(ConditionalFormatType.Formula);
        condition2.setFirstFormula("=MOD(ROW(),2)=1");
        condition2.setBackColor(Color.LIGHT_GRAY);

        //Save the workbook to an Excel file
        workbook.saveToFile("AlternateRowColors.xlsx", ExcelVersion.Version2016);
    }
}
 

 

예 6. Java에서 Excel의 셀 범위에 데이터 막대 추가

Excel의 데이터 막대를 사용하면 셀 범위의 값을 매우 쉽게 시각화할 수 있습니다. 

 

막대가 길수록 더 높은 값을 나타내고, 막대가 짧을수록 더 작은 값을 나타냅니다. 

 

다음 예에서는 조건부 서식을 사용하여 셀 범위에 데이터 막대를 추가하는 방법을 보여줍니다. 

import com.spire.xls.ConditionalFormatType;
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import com.spire.xls.core.IConditionalFormat;
import com.spire.xls.core.spreadsheet.collections.XlsConditionalFormats;

import java.awt.*;

public class AddDataBars {

    public static void main(String[] args) {

        //Create a Workbook instance
        Workbook workbook = new Workbook();

        //Load a sample Excel document
        workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\score sheet.xlsx");

        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Add a conditional format to the worksheet
        XlsConditionalFormats format = sheet.getConditionalFormats().add();

        //Set the range where the conditional format will be applied
        format.addRange(sheet.getRange().get("F4:F15"));

        //Add a condition and set its format type to DataBar
        IConditionalFormat condition =  format.addCondition();
        condition.setFormatType(ConditionalFormatType.DataBar);

        //Set the fill color of the data bars
        condition.getDataBar().setBarColor(Color.red);

        //Save the result document
        workbook.saveToFile("AddDataBars.xlsx", ExcelVersion.Version2013);
    }
}
 

 
반응형

'자바(Java)' 카테고리의 다른 글

Java의 무작위 클래스  (0) 2024.02.04
Java의 유형 캐스팅  (1) 2024.02.04
Java의 명명 규칙  (1) 2024.02.04
Spring Boo란 무엇일까?  (0) 2024.02.03
Java의 This 키워드  (1) 2024.02.02