Я только начал самообразование с 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()