สร้างแผนภูมิ PowerPoint แบบเคลื่อนไหวใน .NET

บทนำ

Aspose.Slides for .NET รองรับการเคลื่อนไหวขององค์ประกอบแผนภูมิ. Series, Categories, Series Elements, Categories Elements สามารถเคลื่อนไหวได้ด้วยเมธอด ISequence.AddEffect และสอง enum EffectChartMajorGroupingType และ EffectChartMinorGroupingType.

การเคลื่อนไหวของซีรีส์แผนภูมิ

หากคุณต้องการเคลื่อนไหวซีรีส์แผนภูมิ ให้เขียนโค้ดตามขั้นตอนที่ระบุด้านล่าง:

  1. โหลดงานนำเสนอ
  2. รับอ้างอิงของวัตถุแผนภูมิ
  3. เคลื่อนไหวซีรีส์
  4. บันทึกไฟล์งานนำเสนอลงดิสก์

ในตัวอย่างที่ให้ด้านล่าง เราได้เคลื่อนไหวซีรีส์แผนภูมิ

// สร้างคลาส Presentation ที่เป็นตัวแทนของไฟล์งานนำเสนอ 
using (Presentation presentation = new Presentation("ExistingChart.pptx"))
{
    // รับอ้างอิงของอ็อบเจ็กต์แผนภูมิ
    var slide = presentation.Slides[0] as Slide;
    var shapes = slide.Shapes as ShapeCollection;
    var chart = shapes[0] as IChart;

    // เคลื่อนไหวซีรีส์
    slide.Timeline.MainSequence.AddEffect(chart, EffectType.Fade, EffectSubtype.None,
    EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart,
    EffectChartMajorGroupingType.BySeries, 0,
    EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart,
    EffectChartMajorGroupingType.BySeries, 1,
    EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart,
    EffectChartMajorGroupingType.BySeries, 2,
    EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart,
    EffectChartMajorGroupingType.BySeries, 3,
    EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    // บันทึกงานนำเสนอที่แก้ไขลงดิสก์ 
    presentation.Save("AnimatingSeries_out.pptx", SaveFormat.Pptx);
}

การเคลื่อนไหวของหมวดหมู่แผนภูมิ

หากคุณต้องการเคลื่อนไหวหมวดหมู่แผนภูมิ ให้เขียนโค้ดตามขั้นตอนที่ระบุด้านล่าง:

  1. โหลดงานนำเสนอ
  2. รับอ้างอิงของวัตถุแผนภูมิ
  3. เคลื่อนไหวหมวดหมู่
  4. บันทึกไฟล์งานนำเสนอลงดิสก์

ในตัวอย่างที่ให้ด้านล่าง เราได้เคลื่อนไหวหมวดหมู่แผนภูมิ

using (Presentation presentation = new Presentation("ExistingChart.pptx"))
{
    // รับอ้างอิงของอ็อบเจ็กต์แผนภูมิ
    var slide = presentation.Slides[0] as Slide;
    var shapes = slide.Shapes as ShapeCollection;
    var chart = shapes[0] as IChart;

    // เคลื่อนไหวองค์ประกอบของหมวดหมู่
    slide.Timeline.MainSequence.AddEffect(chart, EffectType.Fade, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    // บันทึกไฟล์งานนำเสนอลงดิสก์
    presentation.Save("AnimatingCategoriesElements_out.pptx", SaveFormat.Pptx);
}

การเคลื่อนไหวในองค์ประกอบซีรีส์

หากคุณต้องการเคลื่อนไหวองค์ประกอบของซีรีส์ ให้เขียนโค้ดตามขั้นตอนที่ระบุด้านล่าง:

  1. โหลดงานนำเสนอ
  2. รับอ้างอิงของวัตถุแผนภูมิ
  3. เคลื่อนไหวองค์ประกอบของซีรีส์
  4. บันทึกไฟล์งานนำเสนอลงดิสก์

ในตัวอย่างที่ให้ด้านล่าง เราได้เคลื่อนไหวองค์ประกอบของซีรีส์

// โหลดงานนำเสนอ
using (Presentation presentation = new Presentation("ExistingChart.pptx"))
{
    // รับอ้างอิงของอ็อบเจ็กต์แผนภูมิ
    var slide = presentation.Slides[0] as Slide;
    var shapes = slide.Shapes as ShapeCollection;
    var chart = shapes[0] as IChart;

    // เคลื่อนไหวองค์ประกอบของซีรีส์
    slide.Timeline.MainSequence.AddEffect(chart, EffectType.Fade, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 0, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 0, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 0, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 0, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 1, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 1, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 1, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 1, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 2, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 2, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 2, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInSeries, 2, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    // บันทึกไฟล์งานนำเสนอลงดิสก์ 
    presentation.Save("AnimatingSeriesElements_out.pptx", SaveFormat.Pptx);

การเคลื่อนไหวในองค์ประกอบหมวดหมู่

หากคุณต้องการเคลื่อนไหวองค์ประกอบของหมวดหมู่ ให้เขียนโค้ดตามขั้นตอนที่ระบุด้านล่าง:

  1. โหลดงานนำเสนอ
  2. รับอ้างอิงของวัตถุแผนภูมิ
  3. เคลื่อนไหวองค์ประกอบของหมวดหมู่
  4. บันทึกไฟล์งานนำเสนอลงดิสก์

ในตัวอย่างที่ให้ด้านล่าง เราได้เคลื่อนไหวองค์ประกอบของหมวดหมู่

using (Presentation presentation = new Presentation("ExistingChart.pptx"))
{
    // รับอ้างอิงของอ็อบเจ็กต์แผนภูมิ
    var slide = presentation.Slides[0] as Slide;
    var shapes = slide.Shapes as ShapeCollection;
    var chart = shapes[0] as IChart;

    // เคลื่อนไหวองค์ประกอบของหมวดหมู่
    slide.Timeline.MainSequence.AddEffect(chart, EffectType.Fade, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 0, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 1, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 0, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    ((Sequence)slide.Timeline.MainSequence).AddEffect(chart, EffectChartMinorGroupingType.ByElementInCategory, 2, 3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    // บันทึกไฟล์งานนำเสนอลงดิสก์
    presentation.Save("AnimatingCategoriesElements_out.pptx", SaveFormat.Pptx);
}

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

ประเภทเอฟเฟกต์ที่ต่างกัน (เช่น, เข้าสู่, เน้น, ออกจาก) รองรับสำหรับแผนภูมิเช่นเดียวกับรูปทรงธรรมดาไหม?

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

ฉันสามารถรวมการเคลื่อนไหวของแผนภูมิพร้อมกับการเปลี่ยนสไลด์ได้หรือไม่?

ใช่. Transitions ใช้กับสไลด์ ในขณะที่เอฟเฟกต์การเคลื่อนไหวใช้กับวัตถุบนสไลด์ คุณสามารถใช้ทั้งสองพร้อมกันในงานนำเสนอเดียวและควบคุมแยกกันได้.

การเคลื่อนไหวของแผนภูมิจะคงอยู่เมื่อตบลงเป็น PPTX หรือไม่?

ใช่. เมื่อคุณ save to PPTX เอฟเฟกต์การเคลื่อนไหวทั้งหมดและลำดับของมันจะถูกเก็บไว้เนื่องจากเป็นส่วนหนึ่งของโมเดลการเคลื่อนไหวดั้งเดิมของงานนำเสนอ.

ฉันสามารถอ่านการเคลื่อนไหวของแผนภูมิที่มีอยู่จากงานนำเสนอและแก้ไขได้หรือไม่?

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

ฉันสามารถสร้างวิดีโอที่รวมการเคลื่อนไหวของแผนภูมิโดยใช้ Aspose.Slides ได้หรือไม่?

ใช่. คุณสามารถ export a presentation to video พร้อมเก็บการเคลื่อนไหวไว้ กำหนดเวลาและการตั้งค่าอื่น ๆ ของการส่งออก เพื่อให้คลิปที่ได้สะท้อนการเล่นแบบเคลื่อนไหว.