ปรับแต่งตารางข้อมูลแผนภูมิในการนำเสนอโดยใช้ Python

ภาพรวม

Aspose.Slides for Python via Java ช่วยให้คุณสามารถแสดงตารางข้อมูลของแผนภูมิและปรับแต่งการจัดรูปแบบข้อความ, เส้นขอบ, และคีย์คำอธิบายของตาราง. บทความนี้อธิบายวิธีเปิดใช้งานตาราง, จัดรูปแบบข้อความ, ควบคุมแต่ละประเภทของเส้นขอบ, และแสดงหรือซ่อนคีย์คำอธิบาย. ตัวอย่างจะบันทึกแผนภูมิที่กำหนดค่าไว้เป็นไฟล์ PPTX.

ตั้งค่าคุณสมบัติตัวอักษร

เพื่อแสดงตารางข้อมูลของแผนภูมิ, ให้ส่งค่า True ไปยัง setDataTable. ใช้ getChartDataTable เพื่อเข้าถึงตารางและกำหนดการจัดรูปแบบข้อความ.

  1. โหลดการนำเสนอโดยใช้คลาส Presentation
  2. เพิ่มแผนภูมิคอลัมน์แบบกลุ่มไปยังสไลด์แรก.
  3. เปิดใช้งานตารางข้อมูลของแผนภูมิ.
  4. เปิดใช้งานข้อความตัวหนาด้วย setFontBold และส่งค่า 20 ไปยัง setFontHeight เพื่อใช้ข้อความขนาด 20 จุด.
  5. บันทึกการนำเสนอที่แก้ไขแล้ว.

ตัวอย่างต่อไปนี้ต้องมีไฟล์ test.pptx อยู่ในไดเรกทอรีทำงานพร้อมสไลด์อย่างน้อยหนึ่งสไลด์. มันจะเพิ่มแผนภูมิที่มีข้อมูลเริ่มต้นที่ตำแหน่ง (50, 50) โดยมีความกว้าง 600 จุดและความสูง 400 จุด. ไฟล์ output.pptx ที่บันทึกไว้จะมีแผนภูมิพร้อมตารางข้อมูลที่เปิดใช้งานและการตั้งค่าตัวอักษรที่ระบุ.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, NullableBool, Presentation, SaveFormat

presentation = Presentation("test.pptx")
try:
    slide = presentation.getSlides().get_Item(0)

    chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
    chart.setDataTable(True)

    portion_format = chart.getChartDataTable().getTextFormat().getPortionFormat()
    portion_format.setFontBold(NullableBool.True_)
    portion_format.setFontHeight(20)

    presentation.save("output.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

กำหนดเส้นขอบของตารางข้อมูล

เปิดใช้งานตารางด้วย Chart.setDataTable และเข้าถึงมันผ่าน Chart.getChartDataTable. คุณสามารถควบคุมเส้นขอบสามประเภทได้แยกกัน:

  • setBorderHorizontal ควบคุมเส้นขอบแนวนอนของเซลล์.
  • setBorderVertical ควบคุมเส้นขอบแนวตั้งของเซลล์.
  • setBorderOutline ควบคุมเส้นขอบภายนอกของตาราง.

ส่งค่า True ไปยังแต่ละเมธอดเพื่อแสดงเส้นขอบหรือ False เพื่อซ่อน. ตัวอย่างต่อไปนี้สร้างแผนภูมิคอลัมน์แบบกลุ่มด้วยข้อมูลเริ่มต้น, แสดงเส้นขอบแนวนอนและเส้นขอบภายนอก, และซ่อนเส้นขอบแนวตั้ง. ไม่ต้องใช้ไฟล์อินพุตใด ๆ. ตำแหน่งและขนาดของแผนภูมิระบุเป็นจุด.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, Presentation, SaveFormat

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)

    chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
    chart.setDataTable(True)

    data_table = chart.getChartDataTable()
    data_table.setBorderHorizontal(True)
    data_table.setBorderVertical(False)
    data_table.setBorderOutline(True)

    presentation.save("data-table-borders.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

การเปรียบเทียบด้านล่างใช้ข้อมูลแผนภูมิเดียวกันและการตั้งค่าคีย์คำอธิบายในทุกกรณีสี่กรณี. เริ่มจากเปิดใช้งานเส้นขอบทั้งหมด, แต่ละรูปแบบที่เหลือจะปิดการตั้งค่าเส้นขอบเพียงหนึ่งอย่าง. รูปแบบด้านล่างซ้ายตรงกับการตั้งค่าเส้นขอบในตัวอย่าง.

ตารางข้อมูลแผนภูมิที่เปิดใช้งานเส้นขอบทั้งหมด, ไม่มีเส้นขอบแนวนอน, ไม่มีเส้นขอบแนวตั้ง, และไม่มีเส้นขอบภายนอก

แสดงหรือซ่อนคีย์คำอธิบาย

คีย์คำอธิบายคือเครื่องหมายสีเล็ก ๆ ที่อยู่ข้างชื่อซีรีส์ในตารางข้อมูล. พวกมันช่วยให้ผู้อ่านจับคู่แถวของตารางกับซีรีส์ของแผนภูมิ. ส่งค่า True ไปยัง setShowLegendKey เพื่อแสดงเครื่องหมายเหล่านี้หรือ False เพื่อซ่อน.

คำอธิบายแยกของแผนภูมิก็ถูกควบคุมโดย Chart.setLegend. การตั้งค่าเหล่านี้เป็นอิสระต่อกัน: การซ่อนคำอธิบายแยกจะไม่ทำให้คีย์ภายในตารางข้อมูลหายไป, และการซ่อนคีย์ของตารางจะไม่ทำให้คำอธิบายแยกหายไป.

ตัวอย่างต่อไปนี้สร้างแผนภูมิด้วยข้อมูลเริ่มต้น, เปิดใช้งานตารางข้อมูลของมัน, และแสดงคีย์คำอธิบายภายในขณะที่ซ่อนคำอธิบายแยก. เส้นขอบของตารางทั้งหมดถูกเปิดใช้งานอย่างชัดเจน. ไม่ต้องใช้การนำเสนอเป็นอินพุต. เพื่อซ่อนคีย์ของตารางเท่านั้น, ส่งค่า False ไปยัง setShowLegendKey.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ChartType, Presentation, SaveFormat

presentation = Presentation()
try:
    slide = presentation.getSlides().get_Item(0)

    chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400)
    chart.setDataTable(True)
    chart.setLegend(False)

    data_table = chart.getChartDataTable()
    data_table.setBorderHorizontal(True)
    data_table.setBorderVertical(True)
    data_table.setBorderOutline(True)
    data_table.setShowLegendKey(True)

    presentation.save("data-table-legend-keys.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

การเปรียบเทียบด้านล่างแสดงตารางเดียวกันที่เปิดและปิดคีย์คำอธิบาย. เส้นขอบทั้งหมดยังคงเปิดใช้งาน, และคำอธิบายแยกของแผนภูมิถูกซ่อนในทั้งสองกรณี.

ตารางข้อมูลแผนภูมิที่แสดงคีย์คำอธิบายทางซ้ายและซ่อนทางขวา

คำถามที่พบบ่อย

ฉันสามารถแสดงคีย์คำอธิบายในตารางข้อมูลของแผนภูมิได้หรือไม่?

ได้. ส่งค่า True ไปยัง setShowLegendKey เพื่อแสดงคีย์คำอธิบายหรือ False เพื่อซ่อน.

ตารางข้อมูลจะถูกเก็บไว้เมื่อส่งออกการนำเสนอเป็น PDF, HTML หรือภาพหรือไม่?

ได้. Aspose.Slides จะทำการเรนเดอร์แผนภูมิและตารางข้อมูลที่แสดงเป็นส่วนหนึ่งของสไลด์เมื่อส่งออกเป็น PDF, HTML, หรือ images.

ฉันสามารถทำงานกับตารางข้อมูลในแผนภูมิที่โหลดจากเทมเพลตได้หรือไม่?

ได้. สำหรับแผนภูมิที่โหลดจากการนำเสนอหรือเทมเพลตที่มีอยู่, ใช้ hasDataTable และ setDataTable เพื่อตรวจสอบหรือเปลี่ยนแปลงว่าตารางข้อมูลของมันถูกแสดงหรือไม่.

ฉันจะค้นหาแผนภูมิที่เปิดใช้งานตารางข้อมูลได้อย่างไร?

วนลูปผ่านรูปทรงทั้งหมดบนแต่ละสไลด์, ระบุแผนภูมิ, แล้วเรียกเมธอด hasDataTable ของพวกมัน. ค่าที่เป็น True หมายถึงตารางข้อมูลถูกเปิดใช้งาน.