Java의 Excel에서 피벗 테이블 및 피벗 차트 만들기

Excel 워크시트의 데이터를 빠르게 분석하고 데이터의 비교, 패턴 및 추세를 확인해야 하는 경우 첫 번째 직감은 피벗 테이블을 만드는 것일 수 있습니다. 그러나 때로는 모든 사람이 테이블의 데이터를 보고 무슨 일이 일어나고 있는지 확인할 시간이 없는 경우가 있습니다. 피벗 차트는 데이터를 그래픽 방식으로 표현하여 데이터를 보다 쉽게 ​​이해할 수 있도록 합니다. 이 기사에서는 Free Spire.XLS for Java API을 사용하여 Java에서 Excel 파일로 피벗 테이블과 피벗 차트를 만드는 방법을 소개합니다.

종속성 추가



먼저 Free Spire.XLS for Java를 Java 프로젝트에 포함하는 데 필요한 종속성을 추가해야 합니다. 두 가지 방법이 있습니다.

maven을 사용하는 경우 프로젝트의 pom.xml 파일에 다음 코드를 추가해야 합니다.

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


Maven이 아닌 프로젝트의 경우 this website에서 Java용 무료 Spire.XLS를 다운로드하고 패키지의 압축을 풀고 lib 폴더의 Spire.Xls.jar를 종속 항목으로 프로젝트에 추가합니다.

피벗 테이블 만들기



무료 Spire.XLS for Java API는 Excel 워크시트에 피벗 테이블을 추가하는 데 사용되는 XlsPivotTablesCollection.add 메서드를 제공합니다. 다음 예제에서는 Excel 파일을 생성하고 Excel 워크시트에 데이터를 추가한 다음 피벗 테이블을 생성하여 시트의 데이터를 분석하는 방법을 보여줍니다.

import com.spire.xls.*;

public class CreatePivotTable {
    public static void main(String[] args) {
        //Create a workbook
        Workbook workbook = new Workbook();
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Add some data to the worksheet
        sheet.getCellRange("A1").setValue("Product");
        sheet.getCellRange("B1").setValue("Month");
        sheet.getCellRange("C1").setValue("Sale");

        sheet.getCellRange("A2").setValue("Coffee");
        sheet.getCellRange("A3").setValue("Coffee");
        sheet.getCellRange("A4").setValue("Chocolate");
        sheet.getCellRange("A5").setValue("Chocolate");
        sheet.getCellRange("A6").setValue("Milk");
        sheet.getCellRange("A7").setValue("Milk");

        sheet.getCellRange("B2").setValue("January");
        sheet.getCellRange("B3").setValue("February");
        sheet.getCellRange("B4").setValue("January");
        sheet.getCellRange("B5").setValue("February");
        sheet.getCellRange("B6").setValue("January");
        sheet.getCellRange("B7").setValue("February");

        sheet.getCellRange("C2").setValue("1000");
        sheet.getCellRange("C3").setValue("1500");
        sheet.getCellRange("C4").setValue("900");
        sheet.getCellRange("C5").setValue("700");
        sheet.getCellRange("C6").setValue("800");
        sheet.getCellRange("C7").setValue("1000");

        //Add a PivotTable to the worksheet
        CellRange dataRange = sheet.getCellRange("A1:C7");
        PivotCache cache = workbook.getPivotCaches().add(dataRange);
        PivotTable pt = sheet.getPivotTables().add("Pivot Table", sheet.getCellRange("A10"), cache);

        //Drag the fields to the row area
        PivotField pf =null;
        if (pt.getPivotFields().get("Product") instanceof PivotField){
            pf= (PivotField) pt.getPivotFields().get("Product");
        }
        pf.setAxis(AxisTypes.Row);

        PivotField pf2 =null;
        if (pt.getPivotFields().get("Month") instanceof PivotField){
            pf2= (PivotField) pt.getPivotFields().get("Month");
        }
        pf2.setAxis(AxisTypes.Row);

        //Drag the field to the data area
        pt.getDataFields().add(pt.getPivotFields().get("Sale"), "SUM of Sale", SubtotalTypes.Sum);

        //Set PivotTable style
        pt.setBuiltInStyle(PivotBuiltInStyles.PivotStyleMedium12);

        //Calculate data 
        pt.calculateData();
        //Set column width
        sheet.setColumnWidth(1, 14);
        sheet.setColumnWidth(2, 14);

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


산출:

피벗 차트 만들기



Excel 워크시트에 피벗 차트를 추가하려면 WorksheetChartsCollection.add 메서드를 사용해야 합니다. 다음 예에서는 Excel 워크시트에 피벗 차트를 추가하는 방법을 보여줍니다.

import com.spire.xls.*;
import com.spire.xls.core.IPivotTable;

public class CreatePivotChart {
    public static void main(String[] args) {
        //Load the Excel file
        Workbook workbook = new Workbook();
        workbook.loadFromFile("CreatePivotTable.xlsx");

        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);
        //get the first pivot table in the worksheet
        IPivotTable pivotTable = sheet.getPivotTables().get(0);

        //Add a clustered column chart based on the pivot table to the second worksheet
        Chart chart = workbook.getWorksheets().get(1).getCharts().add(ExcelChartType.ColumnClustered, pivotTable);
        //Set chart position
        chart.setTopRow(2);
        chart.setBottomRow(15);
        //Set chart title
        chart.setChartTitle("Total");

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


산출:

좋은 웹페이지 즐겨찾기