JavaRush /Курси /Python SELF UA /Розробка інтерфейсу для роботи зі звітами та даними

Розробка інтерфейсу для роботи зі звітами та даними

Python SELF UA
Рівень 50 , Лекція 4
Відкрита

1. Створення інтерфейсу для роботи зі звітами

Отже, дорогі студенти, настав час зануритися в дизайн та розробку інтерфейсу, який дозволить нам не лише збирати дані, але й представляти їх у зручній, а головне, красивій формі. Сьогодні ми створюємо додаток, який робить генерацію та перегляд звітів легким, як програмування на Python після чашки міцної кави!

Створення інтерфейсу для вибору та відображення звітів

Почнемо зі створення інтерфейсу, з якого користувач зможе вибирати звіти для відображення. Інтерфейс включатиме кнопки для завантаження даних, випадаючі списки для вибору різних звітів та область для відображення графіків.


import tkinter as tk
from tkinter import ttk

# Створюємо головне вікно
root = tk.Tk()
root.title("Звіти та дані")

# Додаємо випадаючий список для вибору звіту
report_label = ttk.Label(root, text="Виберіть звіт:")
report_label.pack(pady=10)

report_options = ["Звіт №1", "Звіт №2", "Звіт №3"]
selected_report = tk.StringVar(value=report_options[0])

report_menu = ttk.Combobox(root, textvariable=selected_report, values=report_options)
report_menu.pack(pady=10)

# Запуск основного циклу програми
root.mainloop()

Запустивши код вище, ви побачите просте вікно, у якому можна вибрати один із запропонованих звітів. Хоча поки ще не видно графіків, це основа, на якій ми будемо будувати функціональність додатку.

2. Інтеграція з графічними бібліотеками

Використання Matplotlib для відображення графіків у додатку

Переходимо до графіків. Для їхньої візуалізації ми будемо використовувати популярну бібліотеку Matplotlib. Ця бібліотека ідеально підходить для відображення даних і може бути інтегрована в додаток на Tkinter. Для початку переконайтеся, що бібліотека встановлена:


pip install matplotlib

Тепер додамо графік у наш інтерфейс, використовуючи FigureCanvasTkAgg для інтеграції з Tkinter.


from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

# Створюємо область для графіків
def plot_report():
    # Створюємо тестовий графік
    fig = Figure(figsize=(5, 4), dpi=100)
    plot = fig.add_subplot(111)
    plot.plot([1, 2, 3, 4, 5], [2, 3, 5, 7, 11])  # Приклад даних

    # Інтегруємо графік у додаток Tkinter
    canvas = FigureCanvasTkAgg(fig, master=root)
    canvas.draw()
    canvas.get_tk_widget().pack()

# Додаємо кнопку для побудови графіка
plot_button = ttk.Button(root, text="Побудувати звіт", command=plot_report)
plot_button.pack(pady=20)

Використовуючи приклад вище, ви можете відобразити простий графік при натисканні кнопки "Побудувати звіт". Звісно, це лише початок. На практиці ви будете замінювати цей простий графік даними зі справжніх звітів.

3. Практичне застосування

Створення додатку для генерації та перегляду звітів із інтеграцією графіків і даних

Тепер, коли у нас є основа для нашого інтерфейсу з графіками, ми можемо розглянути, як представити дані в складнішому і функціональному вигляді. Для цього ви можете інтегрувати дані зі своїх оброблених Excel або CSV файлів, а також відображати будь-які форми візуалізацій, які підходять для вашого застосування.


import pandas as pd
import random

def load_data():
    # Приклад генерації випадкових даних
    data = pd.DataFrame({
        "x": list(range(1, 11)),
        "y": [random.randint(1, 10) for _ in range(10)]
    })
    return data

def plot_data_report():
    data = load_data()
    fig = Figure(figsize=(5, 4), dpi=100)
    plot = fig.add_subplot(111)
    plot.plot(data['x'], data['y'])

    canvas = FigureCanvasTkAgg(fig, master=root)
    canvas.draw()
    canvas.get_tk_widget().pack()

plot_button.config(command=plot_data_report)

Експорт звітів і даних з інтерфейсу у різні формати для подальшого використання

Щоб додаток був не просто демонстраційним, а й корисним, важливо реалізувати можливість експорту даних. Наприклад, у файл PDF або Excel, що дозволить ділитися звітами з колегами чи керівництвом:


from tkinter import filedialog
import matplotlib.pyplot as plt

def export_report():
    # Генерація даних і побудова графіка
    data = load_data()
    fig, ax = plt.subplots()
    ax.plot(data['x'], data['y'])

    # Вибір шляху збереження
    file_path = filedialog.asksaveasfilename(defaultextension=".pdf",
                                             filetypes=[("PDF Files", "*.pdf"), ("All Files", "*.*")])
    if file_path:
        fig.savefig(file_path)
        print(f"Звіт збережено у {file_path}")

# Додаємо кнопку для експорту
export_button = ttk.Button(root, text="Експорт звіту", command=export_report)
export_button.pack(pady=10)

Функція export_report дозволяє вибрати, у який файл зберегти графік, і зберігає його у вказаному форматі. Тепер ваш додаток не лише візуалізує дані, але й надає можливість зберігати їх у зручному вигляді.

Таким чином, ви навчилися створювати інтерфейс для роботи зі звітами, інтегрувати в нього графіки за допомогою Matplotlib і додавати функціонал експорту. На практиці такі навички надзвичайно корисні для розробки інструментів автоматизації звітів, аналізу даних і представлення їх у зручній для сприйняття формі. Сподіваюся, вам сподобалося! І так, пам'ятайте, що справжня магія програмування відбувається, коли код оживає у формі корисного інструменту.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ