Python GUI - дисплей Excel - PullRequest
0 голосов
/ 03 марта 2020

Я только начал самообразование с python, и у меня появилась идея о небольшом приложении, которое (я надеюсь) будет в будущем частью чего-то большего. Чего я хочу добиться, так это отобразить загруженный файл в виде таблицы столбцов и строк и дать пользователю возможность выбрать определенные строки и добавить указанную метку к выделению, скажем, из списка ['1', '2', '3', '4 «]. Но я продолжаю терпеть неудачу. Я буду очень признателен за любые указания или советы о том, как. Заранее спасибо. Ниже мой код.

import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
import pandas as pd
from tkinter import *
import openpyxl
import numpy as np


root = tk.Tk()
root.geometry("2000x1100")

def getExcel():
    global df
    frame_excel = tk.Frame(root)
    frame_excel.place(relx=0, rely=0.03, relwidth=0.98, relheight=0.95)
    import_file_path = filedialog.askopenfilename()
    df = pd.read_excel(import_file_path, sheet_name=0, header=0, index=0)
    pd.set_option('display.max_rows', None)
    pd.set_option('display.max_columns', None)
    pd.set_option('display.width', None)
    pd.set_option('display.max_colwidth', 20)

    lb = tk.Listbox(frame_excel)
    for row in df.values:
        content = pd.DataFrame(row)
        lb.insert("end", content)

    lb.place(relx=0.01, rely=0.03, relwidth=0.98, relheight=0.98)


btn = tk.Button(root, text = "Load excel file", command = getExcel)
btn.pack()

root.mainloop()

Отредактировано: Итак, мне удалось создать то, что я хотел. Пока я не могу выбрать какие-либо загруженные данные и сохранить их в контейнере. Какие-нибудь мысли? Ниже мой обновленный код.

import tkinter as tk
from tkinter import filedialog
from tkinter import ttk
import pandas as pd
import openpyxl
import numpy as np

root = tk.Tk()
root.geometry("2000x1100")

def getExcel():
    global df
    import_file_path = filedialog.askopenfilename()
    df = pd.read_excel(import_file_path)
    container = tk.Listbox(root, bg="#d6efff", selectmode='multiple')
    canvas = tk.Canvas(container)
    def mousewheel(event):
        canvas.yview_scroll(int(-1*(event.delta/120)), "units")
    canvas.bind_all("<MouseWheel>", mousewheel)
    scrollbar = ttk.Scrollbar(container, orient="vertical", command=canvas.yview)
    scrollable_frame = tk.Frame(canvas)
    pd.set_option('display.max_rows', None)
    pd.set_option('display.max_columns', None)
    pd.set_option('display.width', None)
    pd.set_option('display.max_colwidth', 100)
    scrollable_frame.bind(
        "<Configure>",
        lambda e: canvas.configure(
            scrollregion=canvas.bbox("all")
        )
    )
    canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
    canvas.configure(yscrollcommand=scrollbar.set)
    ttk.Label(scrollable_frame, text=df).pack()
    container.place(relx=0.01, rely=0.03, relwidth=0.98, relheight=0.92)
    canvas.pack(side="left", fill="both", expand=True)
    scrollbar.pack(side="right", fill="both")

btn = tk.Button(root, text = "Load excel file", command = getExcel)
btn.grid(row=0 ,column=0)

root.mainloop() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...