แผนภูมิน้ำตกแสดงว่าค่าตั้งต้นเปลี่ยนแปลงอย่างไรผ่านชุดของการเพิ่มและการลดลง ตัวอย่างเช่น คุณสามารถใช้แผนภูมินี้ในรายงานการเงินเพื่อแสดงว่าการขาย ค่าใช้จ่าย และรายได้อื่น ๆ มีส่วนช่วยอย่างไรต่อยอดคงเหลือสุดท้าย

ในบทแนะนำนี้ คุณจะสร้างแผนภูมิน้ำตกในเอกสาร Word โดยใช้ Python และ Aspose.Words for Python via .NET คุณยังจะได้เรียนรู้วิธีระบุจุดรวมในแผนภูมิและตรวจสอบแผนภูมิน้ำตกในเอกสารที่มีอยู่

ไลบรารี Python สำหรับสร้างแผนภูมิ Waterfall ใน Word

Aspose.Words for Python via .NET ช่วยให้คุณสร้างและแก้ไขเอกสาร Word ใน Python ได้ คุณสามารถใช้มันเพื่อเพิ่มแผนภูมิในรายงานและทำงานกับชุดข้อมูลของแผนภูมิและจุดข้อมูล.

ติดตั้งไลบรารีจาก PyPI:

pip install aspose-words

ใช้ Aspose.Words for Python via .NET 26.10 or later สำหรับบทแนะนำเต็มรูปแบบ. เวอร์ชันนี้ได้แนะนำ API ที่ใช้ตรวจสอบว่าจุดในแผนภูมิน้ำตกเป็นค่ารวมหรือไม่.

สำหรับข้อกำหนดของแพลตฟอร์มและรายละเอียดการติดตั้งอื่น ๆ โปรดดูที่ เอกสารการติดตั้ง.

ทำความเข้าใจแผนภูมิน้ำตกตัวอย่าง

ตัวอย่างใช้ข้อมูลต่อไปนี้เพื่อแสดงการเปลี่ยนแปลงจากยอดเริ่มต้นไปยังยอดปิด:

หมวดหมู่ค่าประเภทจุด
ยอดเริ่มต้น100รวม
ยอดขาย+40เพิ่ม
ค่าใช้จ่าย−20ลด
รวมย่อย120รวม
รายได้อื่น+10เพิ่ม
ยอดปิด130รวม

จุดขาย, ค่าใช้จ่าย และรายได้อื่น ๆ แสดงถึงการเปลี่ยนแปลง ส่วนยอดเปิด, ยอดรวมย่อย และยอดปิดแสดงถึงค่าที่อยู่ในขั้นตอนต่าง ๆ

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

  • Categories: ป้ายกำกับสำหรับจุดข้อมูลในแผนภูมิ
  • Values: การเปลี่ยนแปลงและค่ารวมที่ระบุโดยชัดเจน
  • Total flags: ค่าบูลีนที่กำหนดให้จุดที่สอดคล้องเป็นค่ารวม

ธงเหล่านี้ระบุคะแนนรวม; พวกมัน ไม่ คำนวณคะแนนเหล่านั้น ตัวอย่างนี้ ยอดรวมย่อยถูกระบุเป็น 120 และยอดคงเหลือสุดท้ายถูกระบุเป็น 130

สร้างแผนภูมิน้ำตกใน Word ด้วย Python

ทำตามขั้นตอนต่อไปนี้เพื่อสร้างแผนภูมิ:

  1. สร้าง Document และ DocumentBuilder.
  2. แทรกแผนภูมิโดยใช้ ChartType.WATERFALL.
  3. ตั้งชื่อแผนภูมิและล้างซีรีส์เริ่มต้น.
  4. เพิ่มหมวดหมู่, ค่า, และธงรวม.
  5. บันทึกเอกสารเป็นไฟล์ DOCX.

ตัวอย่างต่อไปนี้สร้างแผนภูมิเต็มรูปแบบ:

import aspose.words as aw

# Create a document and document builder.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# Insert a waterfall chart.
shape = builder.insert_chart(
    chart_type=aw.drawing.charts.ChartType.WATERFALL,
    width=500,
    height=350
)

chart = shape.chart
chart.title.text = "Balance Changes"

# Remove the default chart series.
chart.series.clear()

# Define categories, values, and total flags.
categories = [
    "Opening balance",
    "Sales",
    "Expenses",
    "Subtotal",
    "Other income",
    "Closing balance"
]

values = [100, 40, -20, 120, 10, 130]

total_flags = [True, False, False, True, False, True]

# Add the waterfall series.
series = chart.series.add(
    series_name="Balance",
    categories=categories,
    values=values,
    is_subtotal=total_flags
)

# Save the Word document.
doc.save("waterfall-chart.docx")

เมธอด add() เฉพาะสำหรับ waterfall รับชื่อซีรีส์, หมวดหมู่, ค่า, และแฟล็กแบบ Boolean. แต่ละรายการที่ตำแหน่งดัชนีที่กำหนดอธิบายจุดข้อมูลเดียวกันของแผนภูมิ. แม้ว่าพารามิเตอร์ Boolean จะถูกตั้งชื่อว่า is_subtotal แต่ตัวอย่างที่อธิบายไว้ใช้เพื่อระบุค่าตั้งต้น, ค่ากลางแบบ subtotal, และค่าตสุดท้ายเป็นยอดรวม.

ผลลัพธ์ waterfall-chart.docx จะมีแผนภูมิหกจุดที่แสดงยอดเริ่มต้น การเปลี่ยนแปลง ยอดรวมย่อย และยอดปิด.

สร้างแผนภูมิน้ำตกใน Word ด้วย Python.

สร้างแผนภูมิน้ำตกใน Word ด้วย Python.

ตรวจสอบว่าจุดในแผนภูมิน้ำตกเป็นค่ารวมหรือไม่

คุณสามารถตรวจสอบการกำหนดค่าของแต่ละจุดด้วย series.is_total(index). เพิ่มลูปต่อไปนี้หลังจากการเรียก chart.series.add(...) ในตัวอย่างก่อนหน้า:

for i in range(len(categories)):
    point_type = "Total" if series.is_total(i) else "Not a total"
    print(f"{categories[i]}: {values[i]} — {point_type}")

สำหรับข้อมูลตัวอย่าง ผลลัพธ์ที่คาดหวังคือ:

Opening balance: 100 — Total
Sales: 40 — Not a total
Expenses: -20 — Not a total
Subtotal: 120 — Total
Other income: 10 — Not a total
Closing balance: 130 — Total

เมธอด is_total() รับ ดัชนีที่เริ่มจากศูนย์ และคืนค่า True หากจุดนั้นถูกกำหนดเป็นยอดรวม แต่ไม่ได้ระบุว่าจุดนั้นเป็นยอดเริ่มต้น, ยอดรวมย่อยระหว่างขั้น หรือยอดรวมสุดท้าย.

ตรวจสอบผลรวมโดยใช้ ChartDataPoint.is_total

หากคุณมีจุดข้อมูลแผนภูมิอยู่แล้ว คุณสามารถอ่านคุณสมบัติ is_total ของมันได้ ตัวอย่างต่อไปนี้ตรวจสอบผลรวมย่อยที่ดัชนี 3:

is_subtotal = series.data_points[3].is_total
print(f"Subtotal is a total: {is_subtotal}")

Expected output:

Subtotal is a total: True

ChartDataPoint.is_total เป็นคุณสมบัติ read-only สำหรับแผนภูมิน้ำตก. เช่นเดียวกับ series.is_total(index), มันรายงานการกำหนดค่าของจุด; ไม่ได้ตั้งค่า หรือคำนวณผลรวม.

ตรวจสอบแผนภูมิ Waterfall ในเอกสาร Word ที่มีอยู่

คุณยังสามารถโหลดเอกสาร Word ที่มีอยู่แล้วและค้นหาชุดข้อมูลแผนภูมิน้ำตกได้ ตัวอย่างแยกส่วนต่อไปนี้จะตรวจสอบทุกรูปทรง ข้ามรูปทรงที่ไม่มีแผนภูมิ และตรวจสอบชุดข้อมูลน้ำตกแต่ละชุดที่พบ

แทนที่ waterfall-chart.docx ด้วยเส้นทางไปยังเอกสารของคุณ:

import aspose.words as aw

# Load an existing Word document.
doc = aw.Document("waterfall-chart.docx")

found_waterfall_series = False

# Search the document's shapes.
shapes = doc.get_child_nodes(aw.NodeType.SHAPE, True)

for node in shapes:
    shape = node.as_shape()

if not shape.has_chart:
        continue

for series in shape.chart.series:
        if series.series_type != aw.drawing.charts.ChartSeriesType.WATERFALL:
            continue

found_waterfall_series = True
        print(f"Waterfall series: {series.name}")

for i in range(series.y_values.count):
            point_type = "Total" if series.is_total(i) else "Not a total"
            print(f"Point {i}: {point_type}")

if not found_waterfall_series:
    print("No waterfall chart series found.")

ตัวอย่างนี้รายงานแต่ละจุดโดยใช้ดัชนีเริ่มจากศูนย์ มันประมวลผลหลายชุดข้อมูลแบบ waterfall หากมีอยู่และพิมพ์ข้อความหากไม่พบชุดใดเลย คุณสมบัติ series_type ทำให้โค้ดตรวจสอบ ChartSeriesType.WATERFALL ก่อนเรียก is_total()

รับใบอนุญาตฟรี

คุณสามารถขอรับ ใบอนุญาตชั่วคราวฟรี เพื่อประเมิน Aspose.Words for Python via .NET. ใช้ใบอนุญาตในแอปพลิเคชันของคุณก่อนรันตัวอย่าง.

สรุป

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

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

ฉันจะสร้างแผนภูมิน้ำตกใน Word โดยใช้ Python อย่างไร?

แทรกแผนภูมิโดยใช้ ChartType.WATERFALL เพิ่มชุดข้อมูลพร้อมหมวดหมู่ ค่า และแฟล็กรวม แล้วบันทึกเอกสารเป็นไฟล์ DOCX.

ฉันจะระบุคะแนนรวมในแผนภูมิน้ำตกอย่างไร?

ส่งรายการบูลีนผ่านอาร์กิวเมนต์ is_subtotal เมื่อเพิ่มซีรีส์ ตั้งค่ารายการเป็น True สำหรับแต่ละจุดที่ควรกำหนดเป็นผลรวม.

ฉันจะตรวจสอบได้อย่างไรว่าจุดในแผนภูมิน้ำตกเป็นค่ารวม?

เรียก series.is_total(index) พร้อมด้วยดัชนีศูนย์ฐานของจุด, หรืออ่านคุณสมบัติ is_total ของอ็อบเจ็กต์ข้อมูลจุด.

API is_total ทำการตั้งค่าหรือคำนวณผลรวมหรือไม่?

ไม่ พวกเขารายงานว่าจุดใดถูกกำหนดเป็นยอดรวมหรือไม่ ให้ระบุค่าต่าง ๆ และแฟล็กยอดรวมของพวกมันเมื่อสร้างซีรีส์

ฉันสามารถตรวจสอบแผนภูมือน้ำตกในเอกสาร Word ที่มีอยู่ได้หรือไม่?

ใช่. โหลดเอกสาร, ค้นหา shape ที่มีแผนภูมิ, และตรวจสอบแต่ละ series สำหรับ ChartSeriesType.WATERFALL ก่อนตรวจสอบจุดของมัน.

ดูเพิ่มเติม