Biểu đồ thác nước cho thấy cách một giá trị ban đầu thay đổi qua một loạt các tăng và giảm. Ví dụ, bạn có thể sử dụng nó trong báo cáo tài chính để hiển thị cách doanh thu, chi phí và các khoản thu nhập khác đóng góp vào số dư cuối kỳ.

Trong hướng dẫn này, bạn sẽ tạo biểu đồ thác nước trong tài liệu Word bằng Python và Aspose.Words for Python via .NET. Bạn cũng sẽ học cách xác định các điểm tổng trong biểu đồ và kiểm tra các biểu đồ thác nước trong các tài liệu hiện có.

Thư viện Python để tạo biểu đồ Waterfall trong Word

Aspose.Words for Python via .NET cho phép bạn tạo và chỉnh sửa tài liệu Word trong Python. Bạn có thể sử dụng nó để thêm biểu đồ vào báo cáo và làm việc với chuỗi biểu đồ và các điểm dữ liệu.

Cài đặt thư viện từ PyPI:

pip install aspose-words

Sử dụng Aspose.Words for Python via .NET 26.10 hoặc sau cho hướng dẫn đầy đủ. Phiên bản này đã giới thiệu các API được sử dụng để kiểm tra xem một điểm trong biểu đồ thác nước có phải là tổng hay không.

Đối với các yêu cầu nền tảng và các chi tiết cài đặt khác, xem tài liệu cài đặt.

Hiểu biểu đồ Waterfall mẫu

Các ví dụ sử dụng dữ liệu sau để hiển thị sự thay đổi từ số dư đầu kỳ đến số dư cuối kỳ:

CategoryValuePoint type
Số dư đầu kỳ100Tổng
Doanh thu+40Tăng
Chi phí−20Giảm
Tổng phụ120Tổng
Thu nhập khác+10Tăng
Số dư cuối kỳ130Tổng

Các điểm doanh thu, chi phí và thu nhập khác đại diện cho các thay đổi. Số dư đầu kỳ, tổng phụ và số dư cuối kỳ đại diện cho các giá trị ở các giai đoạn cụ thể.

Để tạo chuỗi biểu đồ, bạn sẽ cung cấp ba danh sách theo cùng một thứ tự:

  • Categories: Nhãn cho các điểm trên biểu đồ.
  • Values: Các thay đổi và các giá trị tổng được cung cấp một cách rõ ràng.
  • Total flags: Giá trị Boolean chỉ định các điểm tương ứng là tổng.

Các cờ xác định tổng điểm; chúng không tính chúng. Trong ví dụ này, tổng phụ được cung cấp là 120, và số dư cuối cùng được cung cấp là 130.

Tạo biểu đồ Waterfall trong Word bằng Python

Thực hiện các bước sau để tạo biểu đồ:

  1. Tạo một Document và một DocumentBuilder.
  2. Chèn một biểu đồ bằng cách sử dụng ChartType.WATERFALL.
  3. Đặt tiêu đề cho biểu đồ và xóa các series mặc định.
  4. Thêm các danh mục, giá trị và cờ tổng.
  5. Lưu tài liệu dưới dạng tệp DOCX.

Ví dụ sau tạo biểu đồ hoàn chỉnh:

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")

Phương thức add() đặc thù cho waterfall chấp nhận tên series, các danh mục, giá trị và các cờ Boolean. Mỗi mục tại một chỉ số nhất định mô tả cùng một điểm biểu đồ. Mặc dù đối số Boolean được đặt tên là is_subtotal, ví dụ được tài liệu mô tả sử dụng nó để chỉ định giá trị bắt đầu, một subtotal trung gian và giá trị cuối cùng như là tổng.

Tệp waterfall-chart.docx kết quả chứa một biểu đồ sáu điểm hiển thị số dư đầu kỳ, các thay đổi, tổng phụ và số dư cuối kỳ.

Tạo biểu đồ Waterfall trong Word bằng Python.

Tạo biểu đồ Waterfall trong Word bằng Python.

Kiểm tra xem một điểm trong biểu đồ Waterfall có phải là tổng hay không

Bạn có thể kiểm tra chỉ định của mỗi điểm bằng series.is_total(index). Thêm vòng lặp sau đây sau lời gọi chart.series.add(...) trong ví dụ trước:

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}")

Đối với dữ liệu mẫu, đầu ra mong đợi là:

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

Phương thức is_total() nhận một chỉ mục bắt đầu từ 0 và trả về True nếu điểm được chỉ định là tổng. Nó không xác định liệu điểm đó là số dư đầu kỳ, tổng phụ trung gian, hay tổng cuối cùng.

Kiểm tra tổng bằng cách sử dụng ChartDataPoint.is_total

Nếu bạn đã có một điểm dữ liệu biểu đồ, bạn có thể đọc thuộc tính is_total của nó. Ví dụ sau kiểm tra subtotal tại chỉ mục 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 là một thuộc tính chỉ đọc cho biểu đồ thác nước. Giống như series.is_total(index), nó báo cáo chỉ định của điểm; nó không thiết lập hoặc tính toán tổng.

Kiểm tra biểu đồ Waterfall trong tài liệu Word hiện có

Bạn cũng có thể tải một tài liệu Word hiện có và tìm kiếm các chuỗi biểu đồ thác nước trong đó. Ví dụ độc lập sau đây kiểm tra mọi hình dạng, bỏ qua các hình dạng không có biểu đồ và kiểm tra từng chuỗi thác nước mà nó tìm thấy.

Thay thế waterfall-chart.docx bằng đường dẫn tới tài liệu của bạn:

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.")

Ví dụ báo cáo mỗi điểm theo chỉ mục bắt đầu từ 0. Nó xử lý nhiều chuỗi waterfall nếu chúng tồn tại và in ra một thông báo nếu không tìm thấy nào. Thuộc tính series_type cho phép mã kiểm tra ChartSeriesType.WATERFALL trước khi gọi is_total().

Nhận giấy phép miễn phí

Bạn có thể yêu cầu một giấy phép tạm thời miễn phí để đánh giá Aspose.Words for Python via .NET. Áp dụng giấy phép trong ứng dụng của bạn trước khi chạy các ví dụ.

Kết luận

Bạn có thể tạo biểu đồ thác nước trong tài liệu Word bằng Python và xác định tổng điểm của nó một cách lập trình. Sử dụng cùng một cách tiếp cận để thêm biểu đồ vào các báo cáo được tạo ra hoặc kiểm tra chuỗi thác nước trong các tài liệu hiện có.

Frequently Asked Questions

Làm thế nào để tạo biểu đồ thác nước trong Word bằng Python?

Chèn một biểu đồ bằng cách sử dụng ChartType.WATERFALL, thêm một series với các danh mục, giá trị và cờ tổng, và lưu tài liệu dưới dạng tệp DOCX.

Làm thế nào để chỉ định tổng điểm trong biểu đồ thác?

Truyền một danh sách Boolean qua đối số is_subtotal khi thêm series. Đặt một mục thành True cho mỗi điểm cần được chỉ định là tổng.

Làm thế nào để kiểm tra xem một điểm trong biểu đồ thác nước có phải là tổng không?

Gọi series.is_total(index) với chỉ mục bắt đầu từ 0 của điểm, hoặc đọc thuộc tính is_total của đối tượng data-point của nó.

Các API is_total có thiết lập hay tính toán tổng không?

Không. Chúng báo cáo xem một điểm có được chỉ định là tổng hay không. Cung cấp các giá trị và cờ tổng của chúng khi tạo chuỗi.

Tôi có thể kiểm tra biểu đồ thác nước trong tài liệu Word hiện có không?

Có. Tải tài liệu, tìm các hình dạng chứa biểu đồ, và kiểm tra mỗi series để xem có ChartSeriesType.WATERFALL trước khi kiểm tra các điểm của nó.

Xem thêm