Java 슬라이드에서 데이터 레이블에 대한 콜아웃 설정
Aspose.Slides for Java에서 데이터 레이블에 대한 콜아웃 설정 소개
이 튜토리얼에서는 Aspose.Slides for Java를 사용하여 차트의 데이터 레이블에 대한 콜아웃을 설정하는 방법을 보여줍니다. 설명선은 차트의 특정 데이터 포인트를 강조 표시하는 데 유용할 수 있습니다. 코드를 단계별로 살펴보고 필요한 소스 코드를 제공하겠습니다.
전제 조건
- Java용 Aspose.Slides가 설치되어 있어야 합니다.
- Java 프로젝트를 생성하고 Aspose.Slides 라이브러리를 프로젝트에 추가합니다.
1단계: 프레젠테이션 만들기 및 차트 추가
먼저 프레젠테이션을 만들고 슬라이드에 차트를 추가해야 합니다. 꼭 교체하세요"Your Document Directory"
문서 디렉토리의 실제 경로를 사용하십시오.
String dataDir = "Your Document Directory";
Presentation pres = new Presentation(dataDir + "testc.pptx");
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Doughnut, 10, 10, 500, 500, false);
2단계: 차트 구성
다음으로 범례, 계열, 범주 등의 속성을 설정하여 차트를 구성하겠습니다.
IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
chart.setLegend(false);
// 시리즈 및 카테고리 구성(시리즈 및 카테고리 수 조정 가능)
int seriesIndex = 0;
while (seriesIndex < 15) {
IChartSeries series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType());
series.setExplosion(0);
series.getParentSeriesGroup().setDoughnutHoleSize((byte) 20);
series.getParentSeriesGroup().setFirstSliceAngle(351);
seriesIndex++;
}
int categoryIndex = 0;
while (categoryIndex < 15) {
chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex));
int i = 0;
while (i < chart.getChartData().getSeries().size()) {
// 여기에 데이터 포인트 추가
// ...
i++;
}
categoryIndex++;
}
3단계: 데이터 레이블 사용자 정의
이제 마지막 계열에 대한 콜아웃 설정을 포함하여 데이터 레이블을 사용자 정의하겠습니다.
int i = 0;
while (i < chart.getChartData().getSeries().size()) {
IChartSeries iCS = chart.getChartData().getSeries().get_Item(i);
IChartDataPoint dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1));
dataPoint.getFormat().getFill().setFillType(FillType.Solid);
// 데이터 포인트 형식 지정(채우기, 선 등)
if (i == chart.getChartData().getSeries().size() - 1) {
IDataLabel lbl = dataPoint.getLabel();
lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
//라벨 형식 지정(글꼴, 채우기 등)
lbl.getDataLabelFormat().setShowValue(false);
lbl.getDataLabelFormat().setShowCategoryName(true);
lbl.getDataLabelFormat().setShowSeriesName(false);
// 콜아웃 활성화
lbl.getDataLabelFormat().setShowLabelAsDataCallout(true);
lbl.getDataLabelFormat().setShowLeaderLines(true);
}
i++;
}
4단계: 프레젠테이션 저장
마지막으로 구성된 차트로 프레젠테이션을 저장합니다.
pres.save("chart.pptx", SaveFormat.Pptx);
이제 Aspose.Slides for Java를 사용하여 차트의 데이터 레이블에 대한 콜아웃을 성공적으로 설정했습니다. 특정 차트 및 데이터 요구 사항에 따라 코드를 사용자 정의하세요.
Java 슬라이드의 데이터 레이블에 대한 콜아웃 설정을 위한 전체 소스 코드
String dataDir = "Your Document Directory";
Presentation pres = new Presentation(dataDir + "testc.pptx");
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.Doughnut, 10, 10, 500, 500, false);
IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
chart.setLegend(false);
int seriesIndex = 0;
while (seriesIndex < 15)
{
IChartSeries series = chart.getChartData().getSeries().add(workBook.getCell(0, 0, seriesIndex + 1, "SERIES " + seriesIndex), chart.getType());
series.setExplosion(0);
series.getParentSeriesGroup().setDoughnutHoleSize((byte) 20);
series.getParentSeriesGroup().setFirstSliceAngle(351);
seriesIndex++;
}
int categoryIndex = 0;
while (categoryIndex < 15)
{
chart.getChartData().getCategories().add(workBook.getCell(0, categoryIndex + 1, 0, "CATEGORY " + categoryIndex));
int i = 0;
while (i < chart.getChartData().getSeries().size())
{
IChartSeries iCS = chart.getChartData().getSeries().get_Item(i);
IChartDataPoint dataPoint = iCS.getDataPoints().addDataPointForDoughnutSeries(workBook.getCell(0, categoryIndex + 1, i + 1, 1));
dataPoint.getFormat().getFill().setFillType(FillType.Solid);
dataPoint.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
dataPoint.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.WHITE);
dataPoint.getFormat().getLine().setWidth(1);
dataPoint.getFormat().getLine().setStyle(LineStyle.Single);
dataPoint.getFormat().getLine().setDashStyle(LineDashStyle.Solid);
if (i == chart.getChartData().getSeries().size() - 1)
{
IDataLabel lbl = dataPoint.getLabel();
lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(NullableBool.True);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new FontData("DINPro-Bold"));
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.LIGHT_GRAY);
lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.WHITE);
lbl.getDataLabelFormat().setShowValue(false);
lbl.getDataLabelFormat().setShowCategoryName(true);
lbl.getDataLabelFormat().setShowSeriesName(false);
//lbl.getDataLabelFormat().setShowLabelAsDataCallout(true);
lbl.getDataLabelFormat().setShowLeaderLines(true);
lbl.getDataLabelFormat().setShowLabelAsDataCallout(false);
chart.validateChartLayout();
lbl.setX(lbl.getX() + (float) 0.5);
lbl.setY(lbl.getY() + (float) 0.5);
}
i++;
}
categoryIndex++;
}
pres.save("chart.pptx", SaveFormat.Pptx);
결론
이 튜토리얼에서는 Aspose.Slides for Java를 사용하여 차트의 데이터 레이블에 대한 콜아웃을 설정하는 방법을 살펴보았습니다. 콜아웃은 차트와 프리젠테이션에서 특정 데이터 포인트를 강조하는 데 유용한 도구입니다. 우리는 이러한 사용자 정의를 달성하는 데 도움이 되는 소스 코드와 함께 단계별 가이드를 제공했습니다.
FAQ
데이터 레이블의 모양을 어떻게 사용자 정의합니까?
데이터 레이블의 모양을 사용자 정의하려면 글꼴, 채우기, 선 스타일 등의 속성을 수정하면 됩니다. 예를 들어:
IDataLabel lbl = dataPoint.getLabel();
lbl.getTextFormat().getTextBlockFormat().setAutofitType(TextAutofitType.Shape);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontBold(NullableBool.True);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setLatinFont(new FontData("DINPro-Bold"));
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().setFontHeight(12);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().setFillType(FillType.Solid);
lbl.getDataLabelFormat().getTextFormat().getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.LIGHT_GRAY);
lbl.getDataLabelFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.WHITE);
데이터 레이블에 대한 콜아웃을 활성화하거나 비활성화하려면 어떻게 해야 합니까?
데이터 레이블에 대한 콜아웃을 활성화하거나 비활성화하려면setShowLabelAsDataCallout
방법. 다음으로 설정하세요true
콜아웃을 활성화하고false
비활성화합니다.
lbl.getDataLabelFormat().setShowLabelAsDataCallout(true); // 콜아웃 활성화
lbl.getDataLabelFormat().setShowLabelAsDataCallout(false); // 콜아웃 비활성화
데이터 레이블의 지시선을 사용자 정의할 수 있습니까?
예, 선 스타일, 색상, 너비와 같은 속성을 사용하여 데이터 레이블의 지시선을 사용자 정의할 수 있습니다. 예를 들어:
lbl.getDataLabelFormat().setShowLeaderLines(true); // 지시선 활성화
lbl.getDataLabelFormat().getLeaderLinesFormat().getFormat().getLine().setStyle(LineStyle.Single);
lbl.getDataLabelFormat().getLeaderLinesFormat().getFormat().getLine().setWidth(1);
lbl.getDataLabelFormat().getLeaderLinesFormat().getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
lbl.getDataLabelFormat().getLeaderLinesFormat().getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
다음은 Aspose.Slides for Java의 데이터 레이블 및 설명선에 대한 몇 가지 일반적인 사용자 정의 옵션입니다. 특정 요구 사항에 맞게 모양을 추가로 조정할 수 있습니다.