Java의 Excel에서 행 및 열 그룹화 또는 그룹 해제

Microsoft Excel에서 행과 열을 그룹화하거나 그룹화 해제하여 데이터를 분석하고 요약할 수 있습니다. 이 문서에서는 Spire.XLS for Java library을 사용하여 Java에서 Excel의 행과 열을 그룹화하거나 그룹화 해제하는 방법을 보여줍니다.

내용 요약:
  • 행 및 열 그룹화
  • 범위에 소계 추가
  • 행 및 열 그룹 해제

  • 종속성 추가



    우선 Java 라이브러리용 Spire.XLS를 Java 프로젝트에 포함하는 데 필요한 종속성을 추가해야 합니다.
    official website에서 라이브러리의 jar를 다운로드하거나 Maven 기반 프로젝트의 pom.xml 파일에 다음 코드를 추가하여 Maven에서 설치할 수 있습니다.

    <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>4.12.2</version>    
        </dependency>    
    </dependencies>
    


    행과 열 그룹화



    XlsWorksheet 클래스의 groupByRows 및 groupByColumns 메서드를 사용하여 행과 열을 그룹화할 수 있습니다. 두 방법 모두 다음 매개변수를 허용합니다.

  • int: 그룹화할 첫 번째 행/열 인덱스.

  • int: 그룹화할 마지막 행/열 인덱스.

  • 부울: 그룹화된 데이터를 표시/숨길지 여부를 나타냅니다.

  • 참고: 그룹화하려는 데이터의 각 열의 첫 번째 행(예: 지역)에 레이블이 있고 각 열에 유사한 사실이 포함되어 있으며 그룹화하려는 범위에 빈 행이 없는지 확인해야 합니다. 또는 열.

    import com.spire.xls.ExcelVersion;
    import com.spire.xls.Workbook;
    import com.spire.xls.Worksheet;
    
    public class GroupRowsAndColumns {
        public static void main(String []args){
    
            //Create a Workbook instance
            Workbook workbook = new Workbook();
            //Load an Excel file
            workbook.loadFromFile("Report.xlsx");
    
            //Get the first worksheet
            Worksheet sheet = workbook.getWorksheets().get(0);
    
            //Group specific rows
            sheet.groupByRows(2, 6, false);
           //Group specific columns
            sheet.groupByColumns(1, 3, false);
    
            //Save the result file
            workbook.saveToFile("GroupRowsAndColumns.xlsx", ExcelVersion.Version2016);
            workbook.dispose();
        }
    }
    


    산출:


    범위에 부분합 추가



    XlsWorksheet 클래스의 소계 메서드를 사용하여 소계 및 합계를 삽입하여 범위에서 관련 데이터의 행을 빠르게 계산할 수 있습니다. 이 메서드는 다음 매개 변수를 허용합니다.

  • IXLSRange: 특정 셀 범위입니다.

  • int: 데이터를 그룹화하려는 열 인덱스(0부터 시작).

  • int[]: 소계를 계산해야 하는 열 인덱스 목록(0부터 시작).

  • SubtotalTypes: 소계를 계산하는 데 사용할 함수입니다.

  • 부울: 기존 소계를 바꿀지 여부를 나타냅니다.

  • 부울: 그룹 사이에 페이지 나누기를 삽입할지 여부를 나타냅니다.

  • 부울: 세부 정보 행의 각 그룹 아래에 요약 행을 추가할지 여부를 나타냅니다.

  • import com.spire.xls.*;
    
    public class AddSubtotalsToRange {
        public static void main(String []args){
    
            //Create a Workbook instance
            Workbook workbook = new Workbook();
            //Load an Excel file
            workbook.loadFromFile("Report.xlsx");
    
            //Get the first worksheet
            Worksheet sheet = workbook.getWorksheets().get(0);
    
            //Specify the range that you wish to subtotal
            CellRange range = sheet.getCellRange("A2:C11");
    
            //Add subtotal to the range
            sheet.subtotal(range, 0, new int[] { 2 }, SubtotalTypes.Sum, true, false, true);
    
            //Save the result file
            workbook.saveToFile("AddSubtotal.xlsx", ExcelVersion.Version2016);
            workbook.dispose();
        }
    }
    


    산출:


    행과 열 그룹 해제



    행과 열의 그룹을 해제하려면 XlsWorksheet 클래스의 ungroupByRows 및 ungroupByColumns 메서드를 사용해야 합니다. 두 방법 모두 다음 매개변수를 허용합니다.

  • int: 그룹 해제할 첫 번째 행/열 인덱스.

  • int: 그룹 해제할 마지막 행/열 인덱스.

  • import com.spire.xls.CellRange;
    import com.spire.xls.ExcelVersion;
    import com.spire.xls.Workbook;
    import com.spire.xls.Worksheet;
    
    public class UngroupRowsAndColumns {
        public static void main(String []args){
    
            //Create a Workbook instance
            Workbook workbook = new Workbook();
            //Load an Excel file
            workbook.loadFromFile("GroupRowsAndColumns.xlsx");
    
            //Get the first worksheet
            Worksheet sheet = workbook.getWorksheets().get(0);
    
            //Ungroup specific rows
            sheet.ungroupByRows(2, 6);
           //Ungroup specific columns
            sheet.ungroupByColumns(1, 3);
    
            //Save the result file
            workbook.saveToFile("UnGroupRowsAndColumns.xlsx", ExcelVersion.Version2016);
            workbook.dispose();
        }
    }
    


    산출:

    좋은 웹페이지 즐겨찾기