สร้างหรืออัปเดตแผนภูมืองานนำเสนอ PowerPoint บน Android
ภาพรวม
บทความนี้ให้คำแนะนำอย่างละเอียดเกี่ยวกับวิธีการสร้างและปรับแต่งแผนภูมิด้วย Aspose.Slides คุณจะได้เรียนรู้วิธีการเพิ่มแผนภูมิลงในสไลด์แบบโปรแกรมมิง เติมข้อมูลลงในแผนภูมิ และใช้ตัวเลือกการจัดรูปแบบต่าง ๆ เพื่อให้ตรงกับความต้องการออกแบบของคุณ ทั้งหมดนี้มีตัวอย่างโค้ดที่อธิบายขั้นตอนตั้งแต่การเริ่มต้นอ็อบเจกต์ Presentation และ Chart ไปจนถึงการกำหนด Series, Axis และ Legend ด้วยการทำตามคำแนะนำนี้ คุณจะเข้าใจวิธีการผสานการสร้างแผนภูมิแบบไดนามิกเข้ากับแอปพลิเคชันของคุณ ทำให้การสร้างงานนำเสนอที่ขับเคลื่อนด้วยข้อมูลเป็นเรื่องง่ายขึ้น
สร้างแผนภูมิ
แผนภูมิช่วยให้ผู้ใช้มองเห็นข้อมูลได้อย่างรวดเร็วและได้ข้อสรุปที่อาจมองไม่เห็นจากตารางหรือสเปรดชีต
ทำไมต้องสร้างแผนภูมิ?
ด้วยแผนภูมิคุณสามารถ
- รวม ย่อหรือสรุปข้อมูลจำนวนมากในสไลด์เดียวของงานนำเสนอ
- แสดงรูปแบบและแนวโน้มของข้อมูล
- วิเคราะห์ทิศทางและโมเมนตัมของข้อมูลตามเวลา หรือเทียบกับหน่วยวัดเฉพาะ
- ระบุค่าผิดปกติ ค่าที่บิดเบือน ความเบี่ยงเบน ความผิดพลาด หรือข้อมูลที่ไม่มีความหมาย
- สื่อหรือแสดงข้อมูลที่ซับซ้อนได้อย่างชัดเจน
ใน PowerPoint คุณสามารถสร้างแผนภูมิผ่านเมนู Insert ซึ่งให้เท็มเพลตสำหรับออกแบบแผนภูมิหลายประเภท ใช้ Aspose.Slides คุณสามารถสร้างแผนภูมิปกติ (ตามประเภทแผนภูมิที่นิยม) และแผนภูมิแบบกำหนดเองได้
สร้างแผนภูมิปกติ
ขั้นตอน: Create Chart
- Steps: Create PowerPoint Chart in Java
- Steps: Create Presentation Chart in Java
- Steps: Create PowerPoint Presentation Chart in Java
Code Steps:
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิพร้อมข้อมูลบางส่วนและกำหนดประเภทแผนภูมิตามที่ต้องการ
- เพิ่มหัวเรื่องให้กับแผนภูมิ
- เข้าถึง Worksheet ของข้อมูลแผนภูมิ
- ลบ Series และ Category เริ่มต้นทั้งหมด
- เพิ่ม Series และ Category ใหม่
- เพิ่มข้อมูลใหม่ให้กับ Series ของแผนภูมิ
- เพิ่มสีเติมสำหรับ Series ของแผนภูมิ
- เพิ่มป้ายกำกับสำหรับ Series ของแผนภูมิ
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีการสร้างแผนภูมิปกติ:
// สร้างอินสแตนซ์ของคลาส Presentation ที่แสดงไฟล์ PPTX
Presentation pres = new Presentation();
try {
// เข้าถึงสไลด์แรก
ISlide sld = pres.getSlides().get_Item(0);
// เพิ่มแผนภูมิพร้อมข้อมูลเริ่มต้น
IChart chart = sld.getShapes().addChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
// ตั้งค่าชื่อแผนภูมิ
chart.getChartTitle().addTextFrameForOverriding("Sample Title");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
chart.getChartTitle().setHeight(20);
chart.hasTitle();
// ตั้งค่า Series แรกให้แสดงค่า
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
// ตั้งค่าดัชนีของแผ่นงานข้อมูลแผนภูมิ
int defaultWorksheetIndex = 0;
// รับแผ่นงานข้อมูลแผนภูมิ
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// ลบ Series และ Category ที่สร้างโดยค่าเริ่มต้น
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
int s = chart.getChartData().getSeries().size();
s = chart.getChartData().getCategories().size();
// เพิ่ม Series ใหม่
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 1, "Series 1"),chart.getType());
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 2, "Series 2"),chart.getType());
// เพิ่ม Category ใหม่
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.getChartData().getCategories().add(fact.getCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
// ดึง Series แผนภูมิแรก
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// ตอนนี้กำลังใส่ข้อมูลให้ Series
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 1, 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 30));
// ตั้งค่าสีเติมสำหรับ Series
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(Color.RED);
// ดึง Series แผนภูมิที่สอง
series = chart.getChartData().getSeries().get_Item(1);
// ใส่ข้อมูลให้ Series
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 2, 30));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 2, 10));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 2, 60));
// ตั้งค่าสีเติมสำหรับ Series นี้
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(Color.GREEN);
// สร้างป้ายกำกับแบบกำหนดเองสำหรับแต่ละ Category ของ Series ใหม่
// ตั้งค่าป้ายแรกให้แสดงชื่อ Category
IDataLabel lbl = series.getDataPoints().get_Item(0).getLabel();
lbl.getDataLabelFormat().setShowCategoryName(true);
lbl = series.getDataPoints().get_Item(1).getLabel();
lbl.getDataLabelFormat().setShowSeriesName(true);
// แสดงค่าในป้ายที่สาม
lbl = series.getDataPoints().get_Item(2).getLabel();
lbl.getDataLabelFormat().setShowValue(true);
lbl.getDataLabelFormat().setShowSeriesName(true);
lbl.getDataLabelFormat().setSeparator("/");
// บันทึกงานนำเสนอพร้อมแผนภูมิ
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิแบบกระจาย (Scatter)
แผนภูมิแบบกระจาย (หรือ scatter plot, x‑y graph) มักใช้เพื่อตรวจสอบรูปแบบหรือแสดงความสัมพันธ์ระหว่างสองตัวแปร
คุณอาจต้องการใช้แผนภูมิแบบกระจายเมื่อ
- มีข้อมูลตัวเลขเป็นคู่
- มีสองตัวแปรที่สัมพันธ์กันดี
- ต้องการตรวจสอบว่าตัวแปรสองตัวเกี่ยวข้องกันหรือไม่
- มีตัวแปรอิสระที่มีค่าหลายค่าเพื่ออ้างอิงตัวแปรตาม
Steps: Create Scattered Chart in Java | Steps: Create PowerPoint Scattered Chart in Java | Steps: Create PowerPoint Presentation Scattered Chart in Java
- โปรดทำตามขั้นตอนในส่วน Creating Normal Charts
- สำหรับขั้นตอนที่สาม ให้เพิ่มแผนภูมิพร้อมข้อมูลบางส่วนและกำหนดประเภทแผนภูมิเป็นหนึ่งในต่อไปนี้
- ChartType.ScatterWithMarkers - แสดงแผนภูมิกระจายพร้อมเครื่องหมาย
- ChartType.ScatterWithSmoothLinesAndMarkers - แสดงแผนภูมิกระจายเชื่อมด้วยเส้นโค้งพร้อมเครื่องหมาย
- ChartType.ScatterWithSmoothLines - แสดงแผนภูมิกระจายเชื่อมด้วยเส้นโค้งโดยไม่มีเครื่องหมาย
- ChartType.ScatterWithStraightLinesAndMarkers - แสดงแผนภูมิกระจายเชื่อมด้วยเส้นตรงพร้อมเครื่องหมาย
- ChartType.ScatterWithStraightLines - แสดงแผนภูมิกระจายเชื่อมด้วยเส้นตรงโดยไม่มีเครื่องหมาย
โค้ด Java นี้แสดงวิธีสร้างแผนภูมิกระจายด้วยชุดเครื่องหมายต่าง ๆ:
// สร้างอินสแตนซ์ของคลาส Presentation ที่แสดงไฟล์ PPTX
Presentation pres = new Presentation();
try {
// เข้าถึงสไลด์แรก
ISlide slide = pres.getSlides().get_Item(0);
// สร้างแผนภูมิดีฟอลต์
IChart chart = slide.getShapes().addChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
// รับดัชนีของ worksheet ข้อมูลแผนภูมิดีฟอลต์
int defaultWorksheetIndex = 0;
// รับ worksheet ข้อมูลแผนภูมิ
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// ลบ Series ตัวอย่าง
chart.getChartData().getSeries().clear();
// เพิ่ม Series ใหม่
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());
// ดึง Series แผนภูมิเก็บตัวแรก
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// เพิ่มจุดใหม่ (1:3) ให้กับ Series
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
series.setType(ChartType.ScatterWithStraightLinesAndMarkers);
// เปลี่ยน Marker ของ Series แผนภูมิ
series.getMarker().setSize(10);
series.getMarker().setSymbol(MarkerStyleType.Star);
// ดึง Series แผนภูมิที่สอง
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));
// เปลี่ยน Marker ของ Series แผนภูมิ
series.getMarker().setSize(10);
series.getMarker().setSymbol(MarkerStyleType.Circle);
pres.save("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิวงกลม (Pie)
แผนภูมิวงกลมเหมาะสำหรับแสดงความสัมพันธ์ส่วนต่อส่วนทั้งหมดของข้อมูล โดยเฉพาะเมื่อข้อมูลมีป้ายแบบหมวดหมู่และค่าตัวเลข หากข้อมูลของคุณมีหลายส่วนหรือหลายป้าย คุณอาจพิจารณาใช้แผนภูมิบาร์แทน
Steps: Create Pie Chart in Java | Steps: Create PowerPoint Pie Chart in Java | Steps: Create PowerPoint Presentation Pie Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นพร้อมประเภทที่ต้องการ (ในกรณีนี้คือ ChartType.Pie)
- เข้าถึงข้อมูลแผนภูมิผ่าน IChartDataWorkbook
- ลบ Series และ Category เริ่มต้น
- เพิ่ม Series และ Category ใหม่
- เพิ่มข้อมูลใหม่ให้กับ Series ของแผนภูมิ
- เพิ่มจุดข้อมูลใหม่และกำหนดสีกำหนดเองให้กับส่วนของแผนภูมิกล้าบับ
- ตั้งค่าป้ายกำกับสำหรับ Series
- ตั้งค่าเส้นนำสำหรับป้ายกำกับ Series
- ตั้งค่ามุมการหมุนของสไลด์แผนภูมิกล้อ
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีการสร้างแผนภูมิกล้อ:
// สร้างอินสแตนซ์ของคลาส Presentation ที่แสดงไฟล์ 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);
// ตั้งค่า Series แรกให้แสดงค่า
chart.getChartData().getSeries().get_Item(0).getLabels().getDefaultDataLabelFormat().setShowValue(true);
// ตั้งค่าดัชนีของแผ่นงานข้อมูลแผนภูมิ
int defaultWorksheetIndex = 0;
// รับแผ่นงานข้อมูลแผนภูมิ
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// ลบ Series และ Category ที่สร้างโดยค่าเริ่มต้น
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
// เพิ่ม Category ใหม่
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"));
// เพิ่ม Series ใหม่
IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Series 1"), chart.getType());
// ใส่ข้อมูลให้ Series
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));
// ไม่ทำงานในเวอร์ชันใหม่
// เพิ่มจุดใหม่และกำหนดสีของส่วน
// series.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);
// ตั้งค่าขอบของ Sector
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);
// ตั้งค่าขอบของ Sector
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);
// ตั้งค่าขอบของ Sector
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);
// สร้างป้ายกำกับแบบกำหนดเองสำหรับแต่ละ Category ของ Series ใหม่
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);
// แสดง Leader Lines สำหรับแผนภูมิ
series.getLabels().getDefaultDataLabelFormat().setShowLeaderLines(true);
// ตั้งค่ามุมการหมุนของส่วนแผนภูมิกล้อ
chart.getChartData().getSeriesGroups().get_Item(0).setFirstSliceAngle(180);
// บันทึกงานนำเสนอพร้อมแผนภูมิ
pres.save("PieChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิเส้น (Line)
แผนภูมิเส้น (หรือ line graph) เหมาะสำหรับแสดงการเปลี่ยนแปลงของค่าเมื่อเวลาเปลี่ยนไป ด้วยแผนภูมิเส้น คุณสามารถเปรียบเทียบข้อมูลหลายชุดได้พร้อมกัน ติดตามแนวโน้มและการเปลี่ยนแปลงตามเวลา ไฮไลท์ความผิดปกติในชุดข้อมูล ฯลฯ
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นและกำหนดประเภทเป็น
ChartType.Line - เข้าถึงข้อมูลแผนภูมิ IChartDataWorkbook
- ลบ Series และ Category เริ่มต้น
- เพิ่ม Series และ Category ใหม่
- เพิ่มข้อมูลใหม่ให้กับ Series ของแผนภูมิ
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีการสร้างแผนภูมิเส้น:
Presentation pres = new Presentation();
try {
IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);
pres.save("lineChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
โดยค่าเริ่มต้น จุดบนแผนภูมิเส้นจะเชื่อมต่อด้วยเส้นตรงต่อเนื่อง หากต้องการให้จุดเชื่อมต่อด้วยเส้นประ สามารถกำหนดประเภทเส้นประได้ดังนี้:
IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);
for (IChartSeries series : lineChart.getChartData().getSeries())
{
series.getFormat().getLine().setDashStyle(LineDashStyle.Dash);
}
สร้างแผนภูมิโครงสร้างต้นไม้ (Tree Map)
แผนภูมิโครงสร้างต้นไม้เหมาะกับข้อมูลการขายเมื่อคุณต้องการแสดงขนาดสัมพัทธ์ของหมวดหมู่ข้อมูลและในเวลาเดียวกันดึงความสนใจไปยังรายการที่เป็นผู้ร่วมให้ข้อมูลจำนวนมากในแต่ละหมวดหมู่
Steps: Create Tree Map Chart in Java | Steps: Create PowerPoint Tree Map Chart in Java | Steps: Create PowerPoint Presentation Tree Map Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นและกำหนดประเภทเป็น ChartType.TreeMap
- เข้าถึงข้อมูลแผนภูมิผ่าน IChartDataWorkbook
- ลบ Series และ Category เริ่มต้น
- เพิ่ม Series และ Category ใหม่
- เพิ่มข้อมูลใหม่ให้กับ Series ของแผนภูมิ
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีสร้างแผนภูมิโครงสร้างต้นไม้:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Treemap, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
//สาขา 1
IChartCategory leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C1", "Leaf1"));
leaf.getGroupingLevels().setGroupingItem(1, "Stem1");
leaf.getGroupingLevels().setGroupingItem(2, "Branch1");
chart.getChartData().getCategories().add(wb.getCell(0, "C2", "Leaf2"));
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C3", "Leaf3"));
leaf.getGroupingLevels().setGroupingItem(1, "Stem2");
chart.getChartData().getCategories().add(wb.getCell(0, "C4", "Leaf4"));
//สาขา 2
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C5", "Leaf5"));
leaf.getGroupingLevels().setGroupingItem(1, "Stem3");
leaf.getGroupingLevels().setGroupingItem(2, "Branch2");
chart.getChartData().getCategories().add(wb.getCell(0, "C6", "Leaf6"));
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C7", "Leaf7"));
leaf.getGroupingLevels().setGroupingItem(1, "Stem4");
chart.getChartData().getCategories().add(wb.getCell(0, "C8", "Leaf8"));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Treemap);
series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(true);
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D1", 4));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D2", 5));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D3", 3));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D4", 6));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D5", 9));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D6", 9));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D7", 4));
series.getDataPoints().addDataPointForTreemapSeries(wb.getCell(0, "D8", 3));
series.setParentLabelLayout(ParentLabelLayoutType.Overlapping);
pres.save("Treemap.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิหุ้น (Stock)
Steps: Create Stock Chart in Java | Steps: Create PowerPoint Stock Chart in Java | Steps: Create PowerPoint Presentation Stock Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นและกำหนดประเภทเป็น ChartType.OpenHighLowClose
- เข้าถึงข้อมูลแผนภูมิผ่าน IChartDataWorkbook
- ลบ Series และ Category เริ่มต้น
- เพิ่ม Series และ Category ใหม่
- เพิ่มข้อมูลใหม่ให้กับ Series ของแผนภูมิ
- กำหนดรูปแบบ HiLowLines
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java ตัวอย่างสำหรับสร้างแผนภูมิเหมือนหุ้น:
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();
}
สร้างแผนภูมิกล่องและหนวดยาว (Box and Whisker)
Steps: Create Box and Whisker Chart in Java | Steps: Create PowerPoint Box and Whisker Chart in Java | Steps: Create PowerPoint Presentation Box and Whisker Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นและกำหนดประเภทเป็น ChartType.BoxAndWhisker
- เข้าถึงข้อมูลแผนภูมิผ่าน IChartDataWorkbook
- ลบ Series และ Category เริ่มต้น
- เพิ่ม Series และ Category ใหม่
- เพิ่มข้อมูลใหม่ให้กับ Series ของแผนภูมิ
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีสร้างแผนภูมิกล่องและหนวดยาว:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.BoxAndWhisker, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
chart.getChartData().getCategories().add(wb.getCell(0, "A1", "Category 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A2", "Category 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A3", "Category 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A4", "Category 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A5", "Category 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A6", "Category 1"));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.BoxAndWhisker);
series.setQuartileMethod(QuartileMethodType.Exclusive);
series.setShowMeanLine(true);
series.setShowMeanMarkers(true);
series.setShowInnerPoints(true);
series.setShowOutlierPoints(true);
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B1", 15));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B2", 41));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B3", 16));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B4", 10));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B5", 23));
series.getDataPoints().addDataPointForBoxAndWhiskerSeries(wb.getCell(0, "B6", 16));
pres.save("BoxAndWhisker.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิกรวย (Funnel)
Steps: Create Funnel Chart in Java | Steps: Create PowerPoint Funnel Chart in Java | Steps: Create PowerPoint Presentation Funnel Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นและกำหนดประเภทเป็น ChartType.Funnel
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีสร้างแผนภูมิกรวย:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Funnel, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
chart.getChartData().getCategories().add(wb.getCell(0, "A1", "Category 1"));
chart.getChartData().getCategories().add(wb.getCell(0, "A2", "Category 2"));
chart.getChartData().getCategories().add(wb.getCell(0, "A3", "Category 3"));
chart.getChartData().getCategories().add(wb.getCell(0, "A4", "Category 4"));
chart.getChartData().getCategories().add(wb.getCell(0, "A5", "Category 5"));
chart.getChartData().getCategories().add(wb.getCell(0, "A6", "Category 6"));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Funnel);
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B1", 50));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B2", 100));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B3", 200));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B4", 300));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B5", 400));
series.getDataPoints().addDataPointForFunnelSeries(wb.getCell(0, "B6", 500));
pres.save("Funnel.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิดอกลอย (Sunburst)
Steps: Create Sunburst Chart in Java | Steps: Create PowerPoint Sunburst Chart in Java | Steps: Create PowerPoint Presentation Sunburst Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นและกำหนดประเภทเป็น ChartType.sunburst
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีสร้างแผนภูมิดอกลอย:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
//สาขา 1
IChartCategory leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C1", "Leaf1"));
leaf.getGroupingLevels().setGroupingItem(1, "Stem1");
leaf.getGroupingLevels().setGroupingItem(2, "Branch1");
chart.getChartData().getCategories().add(wb.getCell(0, "C2", "Leaf2"));
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C3", "Leaf3"));
leaf.getGroupingLevels().setGroupingItem(1, "Stem2");
chart.getChartData().getCategories().add(wb.getCell(0, "C4", "Leaf4"));
//สาขา 2
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C5", "Leaf5"));
leaf.getGroupingLevels().setGroupingItem(1, "Stem3");
leaf.getGroupingLevels().setGroupingItem(2, "Branch2");
chart.getChartData().getCategories().add(wb.getCell(0, "C6", "Leaf6"));
leaf = chart.getChartData().getCategories().add(wb.getCell(0, "C7", "Leaf7"));
leaf.getGroupingLevels().setGroupingItem(1, "Stem4");
chart.getChartData().getCategories().add(wb.getCell(0, "C8", "Leaf8"));
IChartSeries series = chart.getChartData().getSeries().add(ChartType.Sunburst);
series.getLabels().getDefaultDataLabelFormat().setShowCategoryName(true);
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D1", 4));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D2", 5));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D3", 3));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D4", 6));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D5", 9));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D6", 9));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D7", 4));
series.getDataPoints().addDataPointForSunburstSeries(wb.getCell(0, "D8", 3));
pres.save("Sunburst.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิฮิสโตแกรม (Histogram)
Steps: Create Histogram Chart in Java | Steps: Create PowerPoint Histogram Chart in Java | Steps: Create PowerPoint Presentation Histogram Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นและกำหนดประเภทเป็น ChartType.Histogram
- เข้าถึงข้อมูลแผนภูมิผ่าน IChartDataWorkbook
- ลบ Series และ Category เริ่มต้น
- เพิ่ม Series และ Category ใหม่
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด 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.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิกว้าง (Radar)
Steps: Create Radar Chart in Java | Steps: Create PowerPoint Radar Chart in Java | Steps: Create PowerPoint Presentation Radar Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลบางส่วนและกำหนดประเภทเป็น
ChartType.Radar - บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีสร้างแผนภูมิกว้าง:
Presentation pres = new Presentation();
try {
pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Radar, 20, 20, 400, 300);
pres.save("Radar-chart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิหลายหมวดหมู่ (Multi‑Category)
Steps: Create Multi Category Chart in Java | Steps: Create PowerPoint Multi Category Chart in Java | Steps: Create PowerPoint Presentation Multi Category Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- เพิ่มแผนภูมิด้วยข้อมูลเริ่มต้นและกำหนดประเภทเป็น ChartType.ClusteredColumn
- เข้าถึงข้อมูลแผนภูมิผ่าน IChartDataWorkbook
- ลบ Series และ Category เริ่มต้น
- เพิ่ม Series และ Category ใหม่
- เพิ่มข้อมูลใหม่ให้กับ Series ของแผนภูมิ
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีสร้างแผนภูมิหลายหมวดหมู่:
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"));
// เพิ่ม Series
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("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิจัดแผนที่ (Map)
แผนภูมิจัดแผนที่เป็นการแสดงภาพของพื้นที่พร้อมข้อมูล แผนภูมินี้เหมาะกับการเปรียบเทียบข้อมูลหรือค่าต่าง ๆ ระหว่างภูมิภาค
Steps: Create Map Chart in Java | Steps: Create PowerPoint Map Chart in Java | Steps: Create PowerPoint Presentation Map Chart in Java
โค้ด Java นี้แสดงวิธีสร้างแผนภูมิจัดแผนที่:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Map, 50, 50, 500, 400);
pres.save("mapChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
สร้างแผนภูมิผสม (Combination)
แผนภูมิผสม (หรือ combo chart) นำสองหรือหลายประเภทแผนภูมิมารวมกันในกราฟเดียว ช่วยให้คุณเน้นเปรียบเทียบ หรือวิเคราะห์ความแตกต่างระหว่างชุดข้อมูลหลายชุดได้ง่ายขึ้น

โค้ด Java ด้านล่างแสดงวิธีสร้างแผนภูมิผสมตามภาพด้านบนใน PowerPoint:
static void createComboChart() {
Presentation presentation = new Presentation();
ISlide slide = presentation.getSlides().get_Item(0);
try {
IChart chart = createChartWithFirstSeries(slide);
addSecondSeriesToChart(chart);
addThirdSeriesToChart(chart);
setPrimaryAxesFormat(chart);
setSecondaryAxesFormat(chart);
presentation.save("combo-chart.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
}
static IChart createChartWithFirstSeries(ISlide slide) {
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
// ตั้งค่าชื่อแผนภูมิ.
chart.setTitle(true);
chart.getChartTitle().addTextFrameForOverriding("Chart Title");
chart.getChartTitle().setOverlay(false);
IParagraph titleParagraph = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0);
IPortionFormat titleFormat = titleParagraph.getParagraphFormat().getDefaultPortionFormat();
titleFormat.setFontBold(NullableBool.False);
titleFormat.setFontHeight(18f);
// ตั้งค่าตัวอักษรอธิบายของแผนภูมิ.
chart.getLegend().setPosition(LegendPositionType.Bottom);
chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(12f);
// ลบ Series และ Category ที่สร้างโดยค่าเริ่มต้น.
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
int worksheetIndex = 0;
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
// เพิ่ม Category ใหม่.
chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 1, 0, "Category 1"));
chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 2, 0, "Category 2"));
chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 3, 0, "Category 3"));
chart.getChartData().getCategories().add(workbook.getCell(worksheetIndex, 4, 0, "Category 4"));
// เพิ่ม Series แรก.
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, 0, 1, "Series 1");
IChartSeries series = chart.getChartData().getSeries().add(seriesNameCell, chart.getType());
series.getParentSeriesGroup().setOverlap((byte)-25);
series.getParentSeriesGroup().setGapWidth(220);
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 1, 1, 4.3));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 2, 1, 2.5));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 3, 1, 3.5));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 4, 1, 4.5));
return chart;
}
static void addSecondSeriesToChart(IChart chart) {
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
final int worksheetIndex = 0;
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, 0, 2, "Series 2");
IChartSeries series = chart.getChartData().getSeries().add(seriesNameCell, ChartType.ClusteredColumn);
series.getParentSeriesGroup().setOverlap((byte)-25);
series.getParentSeriesGroup().setGapWidth(220);
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 1, 2, 2.4));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 2, 2, 4.4));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 3, 2, 1.8));
series.getDataPoints().addDataPointForBarSeries(workbook.getCell(worksheetIndex, 4, 2, 2.8));
}
static void addThirdSeriesToChart(IChart chart) {
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
final int worksheetIndex = 0;
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, 0, 3, "Series 3");
IChartSeries series = chart.getChartData().getSeries().add(seriesNameCell, ChartType.Line);
series.getDataPoints().addDataPointForLineSeries(workbook.getCell(worksheetIndex, 1, 3, 2.0));
series.getDataPoints().addDataPointForLineSeries(workbook.getCell(worksheetIndex, 2, 3, 2.0));
series.getDataPoints().addDataPointForLineSeries(workbook.getCell(worksheetIndex, 3, 3, 3.0));
series.getDataPoints().addDataPointForLineSeries(workbook.getCell(worksheetIndex, 4, 3, 5.0));
series.setPlotOnSecondAxis(true);
}
static void setPrimaryAxesFormat(IChart chart) {
// ตั้งค่าแกนแนวนอน.
IAxis horizontalAxis = chart.getAxes().getHorizontalAxis();
horizontalAxis.getTextFormat().getPortionFormat().setFontHeight(12f);
horizontalAxis.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
setAxisTitle(horizontalAxis, "X Axis");
// ตั้งค่าแกนแนวตั้ง.
IAxis verticalAxis = chart.getAxes().getVerticalAxis();
verticalAxis.getTextFormat().getPortionFormat().setFontHeight(12f);
verticalAxis.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
setAxisTitle(verticalAxis, "Y Axis 1");
// ตั้งค่าสีของเส้นกริดหลักแนวตั้ง.
ILineFillFormat majorGridLinesFormat = verticalAxis.getMajorGridLinesFormat().getLine().getFillFormat();
majorGridLinesFormat.setFillType(FillType.Solid);
majorGridLinesFormat.getSolidFillColor().setColor(new Color(217, 217, 217));
}
static void setSecondaryAxesFormat(IChart chart) {
// ตั้งค่าแกนแนวนอนรอง.
IAxis secondaryHorizontalAxis = chart.getAxes().getSecondaryHorizontalAxis();
secondaryHorizontalAxis.setPosition(AxisPositionType.Bottom);
secondaryHorizontalAxis.setCrossType(CrossesType.Maximum);
secondaryHorizontalAxis.setVisible(false);
secondaryHorizontalAxis.getMajorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
secondaryHorizontalAxis.getMinorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
// ตั้งค่าแกนแนวตั้งรอง.
IAxis secondaryVerticalAxis = chart.getAxes().getSecondaryVerticalAxis();
secondaryVerticalAxis.setPosition(AxisPositionType.Right);
secondaryVerticalAxis.getTextFormat().getPortionFormat().setFontHeight(12f);
secondaryVerticalAxis.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
secondaryVerticalAxis.getMajorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
secondaryVerticalAxis.getMinorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
setAxisTitle(secondaryVerticalAxis, "Y Axis 2");
}
static void setAxisTitle(IAxis axis, String axisTitle) {
axis.setTitle(true);
axis.getTitle().setOverlay(false);
IParagraph titleParagraph = axis.getTitle().addTextFrameForOverriding(axisTitle).getParagraphs().get_Item(0);
IPortionFormat titleFormat = titleParagraph.getParagraphFormat().getDefaultPortionFormat();
titleFormat.setFontBold(NullableBool.False);
titleFormat.setFontHeight(12f);
}
อัปเดตแผนภูมิ
Steps: Update PowerPoint Chart in Java | Steps: Update Presentation Chart in Java | Steps: Update PowerPoint Presentation Chart in Java
- สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของงานนำเสนอที่มีแผนภูมิที่ต้องการอัปเดต
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- วนลูปตรวจสอบทุก Shape เพื่อค้นหาแผนภูมิที่ต้องการ
- เข้าถึง Worksheet ของข้อมูลแผนภูมิ
- แก้ไขข้อมูล Series ของแผนภูมิโดยเปลี่ยนค่าของ Series
- เพิ่ม Series ใหม่และใส่ข้อมูลลงในนั้น
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีอัปเดตแผนภูมิ:
Presentation pres = new Presentation();
try {
// เข้าถึงสไลด์แรก
ISlide sld = pres.getSlides().get_Item(0);
// ดึงแผนภูมิกับข้อมูลเริ่มต้น
IChart chart = (IChart)sld.getShapes().get_Item(0);
// ตั้งค่าดัชนีของแผ่นข้อมูลแผนภูมิ
int defaultWorksheetIndex = 0;
// ดึง Worksheet ของข้อมูลแผนภูมิ
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// เปลี่ยนชื่อ Category ของแผนภูมิ
fact.getCell(defaultWorksheetIndex, 1, 0, "Modified Category 1");
fact.getCell(defaultWorksheetIndex, 2, 0, "Modified Category 2");
// ดึง Series แผนภูมันดับแรก
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// ตอนนี้กำลังอัปเดตข้อมูล Series
fact.getCell(defaultWorksheetIndex, 0, 1, "New_Series1");// แก้ไขชื่อตัว Series
series.getDataPoints().get_Item(0).getValue().setData(90);
series.getDataPoints().get_Item(1).getValue().setData(123);
series.getDataPoints().get_Item(2).getValue().setData(44);
// ดึง Series แผนภูมิที่สอง
series = chart.getChartData().getSeries().get_Item(1);
// ตอนนี้กำลังอัปเดตข้อมูล Series
fact.getCell(defaultWorksheetIndex, 0, 2, "New_Series2");// แก้ไขชื่อตัว Series
series.getDataPoints().get_Item(0).getValue().setData(23);
series.getDataPoints().get_Item(1).getValue().setData(67);
series.getDataPoints().get_Item(2).getValue().setData(99);
// ตอนนี้กำลังเพิ่ม Series ใหม่
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 3, "Series 3"), chart.getType());
// ดึง Series แผนภูมิที่สาม
series = chart.getChartData().getSeries().get_Item(2);
// ตอนนี้กำลังใส่ข้อมูลให้ Series
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 1, 3, 20));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 50));
series.getDataPoints().addDataPointForBarSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 30));
chart.setType(ChartType.ClusteredCylinder);
// บันทึกงานนำเสนอพร้อมแผนภูมิ
pres.save("AsposeChartModified_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
กำหนดช่วงข้อมูลให้กับแผนภูมิ
ขั้นตอนการกำหนดช่วงข้อมูลให้กับแผนภูมิ:
- สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนของงานนำเสนอที่มีแผนภูมิ
- รับอ้างอิงสไลด์โดยใช้ดัชนีของมัน
- วนลูปตรวจสอบทุก Shape เพื่อค้นหาแผนภูมิที่ต้องการ
- เข้าถึงข้อมูลแผนภูมิและกำหนดช่วงข้อมูล
- บันทึก Presentation ที่แก้ไขเป็นไฟล์ PPTX
โค้ด Java นี้แสดงวิธีกำหนดช่วงข้อมูลให้กับแผนภูมิ:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = (IChart)slide.getShapes().get_Item(0);
chart.getChartData().setRange("Sheet1!A1:B4");
pres.save("SetDataRange_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
ใช้เครื่องหมายเริ่มต้นในแผนภูมิ
เมื่อใช้เครื่องหมายเริ่มต้นในแผนภูมิ แต่ละ Series จะได้รับสัญลักษณ์เครื่องหมายเริ่มต้นที่แตกต่างกันโดยอัตโนมัติ
โค้ด Java นี้แสดงวิธีตั้งค่าเครื่องหมาย Series ของแผนภูมิโดยอัตโนมัติ:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 10, 10, 400, 400);
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Series 1"), chart.getType());
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
chart.getChartData().getCategories().add(fact.getCell(0, 1, 0, "C1"));
series.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 1, 1, 24));
chart.getChartData().getCategories().add(fact.getCell(0, 2, 0, "C2"));
series.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 2, 1, 23));
chart.getChartData().getCategories().add(fact.getCell(0, 3, 0, "C3"));
series.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 3, 1, -10));
chart.getChartData().getCategories().add(fact.getCell(0, 4, 0, "C4"));
series.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 4, 1, null));
chart.getChartData().getSeries().add(fact.getCell(0, 0, 2, "Series 2"), chart.getType());
// ดึง Series แผนภูมิที่สอง
IChartSeries series2 = chart.getChartData().getSeries().get_Item(1);
// ตอนนี้กำลังใส่ข้อมูลให้ Series
series2.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 1, 2, 30));
series2.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 2, 2, 10));
series2.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 3, 2, 60));
series2.getDataPoints().addDataPointForLineSeries(fact.getCell(0, 4, 2, 40));
chart.setLegend(true);
chart.getLegend().setOverlay(false);
pres.save("DefaultMarkersInChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
คำถามที่พบบ่อย
Aspose.Slides รองรับประเภทแผนภูมิใดบ้าง?
Aspose.Slides รองรับประเภทแผนภูมิหลากหลายประเภทที่ระบุใน chart types เช่น bar, line, pie, area, scatter, histogram, radar และอื่น ๆ อีกมาก ทำให้คุณเลือกประเภทแผนภูมิที่เหมาะสมกับการแสดงผลข้อมูลของคุณได้ง่าย
ฉันจะเพิ่มแผนภูมิใหม่ลงในสไลด์อย่างไร?
เพื่อเพิ่มแผนภูมิ คุณต้องสร้างอินสแตนซ์ของคลาส Presentation ดึงสไลด์ที่ต้องการโดยใช้ดัชนี แล้วเรียกเมธอดเพื่อเพิ่มแผนภูมิโดยระบุประเภทแผนภูมิและข้อมูลเริ่มต้น วิธีนี้จะผสานแผนภูมิเข้าไปในงานนำเสนอโดยตรง
ฉันจะอัปเดตข้อมูลที่แสดงในแผนภูมิได้อย่างไร?
คุณสามารถอัปเดตข้อมูลของแผนภูมิได้โดยเข้าถึง Workbook ของข้อมูลแผนภูมิ (IChartDataWorkbook) ลบ Series และ Category เริ่มต้น แล้วเพิ่มข้อมูลที่กำหนดเองของคุณ ซึ่งจะทำให้แผนภูมิแสดงข้อมูลล่าสุดได้
สามารถปรับแต่งลักษณะของแผนภูมิได้หรือไม่?
ได้ Aspose.Slides มีตัวเลือกการปรับแต่งที่ครอบคลุม คุณสามารถแก้ไขสี ฟอนต์ ป้ายกำกับ Legend และองค์ประกอบการจัดรูปแบบอื่น ๆ (/slides/th/androidjava/chart-entities/) เพื่อให้แผนภูมิตรงตามข้อกำหนดการออกแบบของคุณ.