차트는 프레젠테이션 내의 데이터를 요약하고 시각적으로 표현하는 데 사용됩니다. 데이터를 시각화하기 위해 MS PowerPoint는 다양한 차트 유형을 제공합니다. 그 중에서도 가장 일반적으로 사용되는 차트 유형에는 파이 차트, 꺾은선형 차트, 막대 차트, 히스토그램, 주식 차트 등이 있습니다. 이 기사에서는 Java를 사용하여 PowerPoint 프레젠테이션에서 차트를 만드는 방법을 배웁니다.
- PowerPoint에서 차트를 만드는 API
- Java를 사용하여 PowerPoint에서 세로 막대형 차트 만들기
- Java를 사용하여 PowerPoint에서 분산형 차트 만들기
- Java를 사용하여 PowerPoint에서 원형 차트 추가
- Java를 사용하여 PowerPoint에서 히스토그램 차트 추가
- Java를 사용하여 PowerPoint에서 주식형 차트 만들기
PowerPoint에서 차트를 만드는 Java API
프레젠테이션에서 다양한 유형의 차트를 생성하기 위해 Java용 Aspose.Slides를 사용합니다. 이 API를 사용하면 Java 응용 프로그램 내에서 PowerPoint 프레젠테이션을 만들고 조작할 수 있습니다. 또한 차트를 만들고 프레젠테이션에 원활하게 추가할 수 있습니다. API를 다운로드하거나 다음 Maven 구성을 사용하여 설치할 수 있습니다.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-slides</artifactId>
<version>21.7</version>
<classifier>jdk16</classifier>
</dependency>
Java를 사용하여 PowerPoint PPT에서 세로 막대형 차트 만들기
다음은 Java를 사용하여 PowerPoint 프레젠테이션에서 세로 막대형 차트를 만드는 단계입니다.
- 먼저 Presentation 클래스의 인스턴스를 만듭니다(기존 프레젠테이션을 로드하는 경우 생성자에 파일 경로 지정).
- 인덱스를 지정하여 슬라이드의 참조를 얻습니다.
- ChartType.ClusteredColumn 유형과 함께 기본 데이터가 있는 차트를 추가합니다.
- 기본 시리즈 및 범주를 지웁니다.
- IChartDataWorkbook 개체의 차트 데이터 통합 문서에 액세스합니다.
- 통합 문서에 차트의 새 계열 및 범주를 추가합니다.
- 차트 시리즈에 새 차트 데이터를 추가합니다.
- 마지막으로 Presentation.save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.
데모를 위해 다음 코드 샘플은 Java를 사용하여 PowerPoint 프레젠테이션에서 세로 막대형 차트를 만드는 방법을 보여줍니다.
// 새 프레젠테이션 만들기
Presentation pres = new Presentation();
try {
// 새 세로 막대형 차트를 추가하고 기본 범주 및 계열 지우기
IChart ch = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 600, 450);
ch.getChartData().getSeries().clear();
ch.getChartData().getCategories().clear();
// 차트 데이터에 액세스
IChartDataWorkbook fact = ch.getChartData().getChartDataWorkbook();
fact.clear(0);
int defaultWorksheetIndex = 0;
// 카테고리 추가
IChartCategory category = ch.getChartData().getCategories().add(fact.getCell(0, "c2", "A"));
category.getGroupingLevels().setGroupingItem(1, "Group1");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c3", "B"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c4", "C"));
category.getGroupingLevels().setGroupingItem(1, "Group2");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c5", "D"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c6", "E"));
category.getGroupingLevels().setGroupingItem(1, "Group3");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c7", "F"));
category = ch.getChartData().getCategories().add(fact.getCell(0, "c8", "G"));
category.getGroupingLevels().setGroupingItem(1, "Group4");
category = ch.getChartData().getCategories().add(fact.getCell(0, "c9", "H"));
// 시리즈 추가
IChartSeries series = ch.getChartData().getSeries().add(fact.getCell(0, "D1", "Series 1"),
ChartType.ClusteredColumn);
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D2", 10));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D3", 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D4", 30));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D5", 40));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D6", 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D7", 60));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D8", 70));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, "D9", 80));
// 차트로 프레젠테이션 저장
pres.save("column-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
다음은 결과 세로 막대형 차트의 스크린샷입니다.
Java를 사용하여 PowerPoint PPT에서 분산형 차트 만들기
다음은 Java를 사용하여 PowerPoint 프레젠테이션에서 분산형 차트를 만드는 단계입니다.
- Presentation 클래스를 사용하여 새 프레젠테이션을 만들거나 기존 프레젠테이션을 로드합니다.
- ISlide 개체에서 슬라이드의 참조를 가져옵니다.
- 기본 데이터가 있는 ScatterWithSmoothLines 차트 유형을 추가하고 IChart 개체에서 해당 참조를 가져옵니다.
- IChartDataWorkbook 개체로 차트 데이터 통합 문서에 액세스하고 기본 계열을 지웁니다.
- 차트 데이터에 새 시리즈를 추가합니다.
- IChartSeries 개체에 각 시리즈에 액세스하고 시리즈에 데이터 포인트를 추가합니다.
- IChartSeries.getMarker()를 사용하여 시리즈의 마커에 액세스하고 해당 속성을 설정합니다.
- Presentation.save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.
다음 코드 샘플은 Java를 사용하여 PowerPoint 프레젠테이션에서 분산형 차트를 만드는 방법을 보여줍니다.
// PPTX 파일을 나타내는 프레젠테이션 클래스 인스턴스화
Presentation pres = new Presentation();
try {
// 첫 번째 슬라이드 액세스
ISlide slide = pres.getSlides().get_Item(0);
// 기본 차트 만들기
IChart chart = slide.getShapes().addChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
// 기본 차트 데이터 워크시트 인덱스 가져오기
int defaultWorksheetIndex = 0;
// 차트 데이터 워크시트 가져오기
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// 데모 시리즈 삭제
chart.getChartData().getSeries().clear();
// 새 시리즈 추가
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 1, "Series 1"), chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 1, 3, "Series 2"), chart.getType());
// 첫 번째 차트 시리즈 가져오기
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// 거기에 새로운 점(1:3)을 추가합니다.
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 1), fact.getCell(defaultWorksheetIndex, 2, 2, 3));
// 새 포인트 추가(2:10)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 2), fact.getCell(defaultWorksheetIndex, 3, 2, 10));
// 시리즈 유형 편집
series.setType(ChartType.ScatterWithStraightLinesAndMarkers);
// 차트 시리즈 마커 변경
series.getMarker().setSize(10);
series.getMarker().setSymbol(MarkerStyleType.Star);
// 두 번째 차트 시리즈 가져오기
series = chart.getChartData().getSeries().get_Item(1);
// 거기에 새 점(5:2)을 추가합니다.
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 5), fact.getCell(defaultWorksheetIndex, 2, 4, 2));
// 새 포인트 추가(3:1)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 3), fact.getCell(defaultWorksheetIndex, 3, 4, 1));
// 새 포인트 추가(2:2)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 4, 3, 2), fact.getCell(defaultWorksheetIndex, 4, 4, 2));
// 새 포인트 추가(5:1)
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 5, 3, 5), fact.getCell(defaultWorksheetIndex, 5, 4, 1));
// 차트 시리즈 마커 변경
series.getMarker().setSize(10);
series.getMarker().setSymbol(MarkerStyleType.Circle);
// 프레젠테이션 저장
pres.save("scatter-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
다음 스크린샷은 결과로 생성된 분산형 차트를 보여줍니다.
Java를 사용하여 PowerPoint PPT에서 원형 차트 만들기
다음은 Java를 사용하여 PowerPoint 프레젠테이션에서 원형 차트를 만드는 단계입니다.
- Presentation 클래스를 사용하여 새 프레젠테이션을 만들거나 기존 프레젠테이션을 로드합니다.
- 인덱스를 제공하여 슬라이드 참조를 가져옵니다.
- ChartType.Pie 유형과 함께 기본 데이터가 있는 차트를 추가합니다.
- IChartDataWorkbook 개체의 차트 데이터에 액세스합니다.
- 기본 시리즈 및 범주를 지웁니다.
- 새로운 시리즈와 카테고리를 만드세요.
- 차트 시리즈에 대한 새 차트 데이터를 추가합니다.
- 차트에 새 포인트를 추가하고 원형 차트의 섹터에 사용자 지정 색상을 추가합니다.
- 시리즈의 레이블과 레이블의 지시선을 설정합니다.
- 원형 차트 슬라이드의 회전 각도를 설정합니다.
- Presentation.save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.
다음 코드 샘플은 Java를 사용하여 PowerPoint 프레젠테이션에서 원형 차트를 만드는 방법을 보여줍니다.
// PPTX 파일을 나타내는 프레젠테이션 클래스 인스턴스화
Presentation pres = new Presentation();
try {
// 첫 번째 슬라이드 액세스
ISlide slides = pres.getSlides().get_Item(0);
// 기본 데이터가 있는 차트 추가
IChart chart = slides.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400);
// 차트 제목 설정
chart.getChartTitle().addTextFrameForOverriding("Sample Title");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
chart.getChartTitle().setHeight(20);
chart.setTitle(true);
// 첫 번째 시리즈를 값 표시로 설정
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
// 차트 데이터 시트의 인덱스 설정
int defaultWorksheetIndex = 0;
// 차트 데이터 워크시트 가져오기
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// 기본 생성 시리즈 및 카테고리 삭제
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
// 새 카테고리 추가
chart.getChartData().getCategories().add(fact.getCell(0, 1, 0, "First Qtr"));
chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "2nd Qtr"));
chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "3rd Qtr"));
// 새 시리즈 추가
IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Series 1"), chart.getType());
// 이제 시리즈 데이터 채우기
series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
series.getDataPoints().addDataPointForPieSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
// 새 버전에서 작동하지 않음
// 새 포인트 추가 및 섹터 색상 설정
// 시리즈.IsColorVaried = true;
chart.getChartData().getSeriesGroups().get_Item(0).setColorVaried(true);
IChartDataPoint point = series.getDataPoints().get_Item(0);
point.getFormat().getFill().setFillType(FillType.Solid);
point.getFormat().getFill().getSolidFillColor().setColor(Color.CYAN);
// 섹터 경계 설정
point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.GRAY);
point.getFormat().getLine().setWidth(3.0);
//point.getFormat().getLine().setStyle(LineStyle.ThinThick);
//point.getFormat().getLine().setDashStyle(LineDashStyle.DashDot);
IChartDataPoint point1 = series.getDataPoints().get_Item(1);
point1.getFormat().getFill().setFillType(FillType.Solid);
point1.getFormat().getFill().getSolidFillColor().setColor(Color.ORANGE);
// 섹터 경계 설정
point1.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point1.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
point1.getFormat().getLine().setWidth(3.0);
//point1.getFormat().getLine().setStyle(LineStyle.Single);
//point1.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDot);
IChartDataPoint point2 = series.getDataPoints().get_Item(2);
point2.getFormat().getFill().setFillType(FillType.Solid);
point2.getFormat().getFill().getSolidFillColor().setColor(Color.YELLOW);
// 섹터 경계 설정
point2.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point2.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED);
point2.getFormat().getLine().setWidth(2.0);
//point2.getFormat().getLine().setStyle(LineStyle.ThinThin);
//point2.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDotDot);
// 새 시리즈의 각 범주에 대한 사용자 지정 레이블 만들기
IDataLabel lbl1 = series.getDataPoints().get_Item(0).getLabel();
// lbl.ShowCategoryName = true;
lbl1.getDataLabelFormat().setShowValue(true);
IDataLabel lbl2 = series.getDataPoints().get_Item(1).getLabel();
lbl2.getDataLabelFormat().setShowValue(true);
lbl2.getDataLabelFormat().setShowLegendKey(true);
lbl2.getDataLabelFormat().setShowPercentage(true);
IDataLabel lbl3 = series.getDataPoints().get_Item(2).getLabel();
lbl3.getDataLabelFormat().setShowSeriesName(true);
lbl3.getDataLabelFormat().setShowPercentage(true);
// 차트의 지시선 표시
series.getLabels().getDefaultDataLabelFormat().setShowLeaderLines(true);
// 원형 차트 섹터의 회전 각도 설정
chart.getChartData().getSeriesGroups().get_Item(0).setFirstSliceAngle(180);
// 차트로 프레젠테이션 저장
pres.save("pie-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
다음은 생성된 파이 차트의 스크린샷입니다.
Java를 사용하여 PowerPoint PPTX에 히스토그램 차트 추가
다음은 Java를 사용하여 PowerPoint 프레젠테이션에서 히스토그램 차트를 만드는 단계입니다.
- Presentation 클래스를 사용하여 새 프레젠테이션을 만들거나 기존 프레젠테이션을 로드합니다.
- 인덱스를 제공하여 슬라이드의 참조를 얻습니다.
- ChartType.Histogram 유형과 함께 기본 데이터가 있는 차트를 추가합니다.
- IChartDataWorkbook 개체의 차트 데이터에 액세스합니다.
- 기본 시리즈 및 범주를 지웁니다.
- 새로운 시리즈와 카테고리를 추가하세요.
- Presentation.save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.
다음 코드 샘플은 Java를 사용하여 히스토그램 차트를 만드는 방법을 보여줍니다.
// 새 프레젠테이션 만들기
Presentation pres = new Presentation();
try {
// 새 히스토그램 차트를 추가하고 해당 범주 및 계열 지우기
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Histogram, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
// 차트 데이터 액세스
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
// 시리즈 추가
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Histogram);
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A1", 15));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A2", -41));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A3", 16));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A4", 10));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A5", -23));
series.getDataPoints().addDataPointForHistogramSeries(wb.getCell(0, "A6", 16));
chart.getAxes().getHorizontalAxis().setAggregationType(AxisAggregationType.Automatic);
// 프레젠테이션 저장
pres.save("histogram-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
다음은 생성된 히스토그램 차트의 스크린샷입니다.
Java를 사용하여 PowerPoint에서 주식형 차트 만들기
주식형 차트는 또한 PowerPoint 프레젠테이션에서 일반적으로 사용되는 차트 유형 중 하나입니다. 다음은 Java에서 주식 차트를 만드는 단계입니다.
- Presentation 클래스의 인스턴스를 만듭니다.
- 인덱스를 제공하여 슬라이드의 참조를 가져옵니다.
- ChartType.OpenHighLowClose 유형과 함께 기본 데이터가 있는 차트를 추가합니다.
- IChartDataWorkbook 개체의 차트 데이터에 액세스합니다.
- 기본 시리즈 및 범주를 지웁니다.
- 새로운 시리즈와 카테고리를 추가하세요.
- 차트 시리즈에 대한 새 차트 데이터를 추가합니다.
- HiLowLines 형식을 지정합니다.
- Presentation.save(String, SaveFormat) 메서드를 사용하여 프레젠테이션을 저장합니다.
다음 코드 샘플은 C#을 사용하여 PowerPoint 프레젠테이션에 주식형 차트를 추가하는 방법을 보여줍니다.
// 새 프레젠테이션 만들기
Presentation pres = new Presentation();
try {
// 차트 추가
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);
// 카테고리 및 시리즈 지우기
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
// 차트 데이터 액세스
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
// 카테고리 추가
chart.getChartData().getCategories().add(wb.getCell(0, 1, 0, "A"));
chart.getChartData().getCategories().add(wb.getCell(0, 2, 0, "B"));
chart.getChartData().getCategories().add(wb.getCell(0, 3, 0, "C"));
chart.getChartData().getSeries().add(wb.getCell(0, 0, 1, "Open"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 2, "High"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 3, "Low"), chart.getType());
chart.getChartData().getSeries().add(wb.getCell(0, 0, 4, "Close"), chart.getType());
// 시리즈 데이터 추가
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 1, 72));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 1, 25));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 1, 38));
series = chart.getChartData().getSeries().get_Item(1);
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 2, 172));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 2, 57));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 2, 57));
series = chart.getChartData().getSeries().get_Item(2);
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 3, 12));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 3, 12));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 3, 13));
series = chart.getChartData().getSeries().get_Item(3);
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 1, 4, 25));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 2, 4, 38));
series.getDataPoints().addDataPointForStockSeries(wb.getCell(0, 3, 4, 50));
chart.getChartData().getSeriesGroups().get_Item(0).getUpDownBars().setUpDownBars(true);
chart.getChartData().getSeriesGroups().get_Item(0).getHiLowLinesFormat().getLine().getFillFormat().setFillType(FillType.Solid);
for (IChartSeries ser : chart.getChartData().getSeries())
{
ser.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
}
// 프레젠테이션 저장
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
다음은 생성된 주식 차트의 스크린샷입니다.
더 많은 차트 유형
위에서 언급한 차트 외에도 PowerPoint 프레젠테이션에 추가할 수 있는 다른 유형의 차트도 있습니다. 지원되는 차트 유형에 대한 자세한 내용은 이 문서 문서를 참조하십시오.
무료 API 라이선스 받기
평가 제한 없이 API를 사용하기 위해 임시 무료 라이선스를 취득할 수 있습니다.
온라인 시도
Aspose.Slides를 기반으로 하는 PowerPoint 프레젠테이션에서 차트를 만들기 위한 무료 온라인 도구를 사용해 볼 수도 있습니다.
결론
이 기사에서는 Java를 사용하여 PowerPoint 프레젠테이션에서 차트를 만드는 방법을 배웠습니다. 단계별 가이드 및 코드 샘플은 세로 막대형 차트, 분산형 차트, 원형 차트, 히스토그램 및 주식 차트를 추가하는 방법을 보여주었습니다. 문서를 사용하여 Java용 Aspose.Slides에 대해 자세히 알아볼 수 있습니다. 질문이 있는 경우 포럼을 통해 알려주십시오.