Я хочу показать в GUI (в виде метки или в виде сообщения) указанные c строки из файла Excel. В этом случае пользователь введет неделю, которую он хочет увидеть. В этом случае 5 . Но я получаю сообщение об ошибке F = float (export_entry.get ()) код для ввода данных в Excel, но эта часть работает нормально)
Это код
import tkinter as tk
from datetime import date, datetime
from tkinter import *
from warnings import simplefilter
import openpyxl
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Alignment
import xlrd
simplefilter("ignore")
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
wb = openpyxl.load_workbook('excel.xlsx')
sheet = wb["Productie"]
week_number = date.today().isocalendar()[1]
root = tk.Tk()
root.title("Main Menu")
class WritableStringVar(tk.StringVar):
def write(self, added_text):
new_text = self.get() + added_text
self.set(new_text)
def clear(self):
self.set("")
def hello():
wb_sales = pd.ExcelFile("excel.xlsx")
#sheet_1 = pd.read_excel("excel.xlsx", sheet_name= 0)
#sheet_2 = pd.read_excel("excel.xlsx", sheet_name= 1)
sheet_3 = pd.read_excel("excel.xlsx", sheet_name= 2)
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 500)
read_sheets_name = wb_sales.sheet_names
F = float(export_entry.get())
C =(sheet_3.query('["F"] in Week'))
export_entry["text"]=str(C)
def write_to_xlsx():
wb = openpyxl.load_workbook('excel.xlsx')
sheet = wb["Productie"]
week_number = date.today().isocalendar()[1]
ws = wb.active
maxim = ws.max_row + 1
for i in range(8):
ws.merge_cells(start_row=maxim, start_column=i+1, end_row=maxim + 1, end_column=i+1) # A
ws.merge_cells(start_row=maxim, start_column=24, end_row=maxim + 1, end_column=24) # X
ws.merge_cells(start_row=maxim, start_column=25, end_row=maxim + 1, end_column=25) # Y
week_number = date.today().isocalendar()[1]
ws.cell(column=1, row=maxim, value=week_number)
now = datetime.now()
dt_string = now.strftime('%d/%m')
ws.cell(column=2, row=maxim, value=dt_string)
for ndex, entry in enumerate(entry_list):
ws.cell(column=ndex+3, row=maxim, value=entry_list[ndex].get())
entry_list[ndex].delete(0, 'end')
rows = range(1, maxim + 1)
columns = range(1, 8)
for row in rows:
for col in columns:
sheet.cell(row, col).alignment = Alignment(horizontal='center', vertical='center', wrap_text=True)
wb.save("excel.xlsx")
label_list = ['Model', 'Etapa', 'Batch', 'Cantitate', 'S/N']
entry_list = []
for i in range(len(label_list)):
tk.Label(root, text=label_list[i]).grid(row=i, column=0, sticky='w', padx=15)
entry_list.append(tk.Entry(root, width=20))
entry_list[-1].grid(row=i, column=1, sticky='w', padx=15)
tk.Button(root, text='Submit', command=write_to_xlsx).grid(row=1, column=2, sticky='e', padx=10)
tk.Button(root, text='Export', command=hello).grid(row=2, column=2, sticky='e', padx=10)
week_label =tk.Label(root,text="week:").grid(row=3, column=2, sticky='e', padx=10)
export_label =tk.Label(root)
export_entry = tk.Entry(root).grid(row=4, column=2, sticky='e', padx=10)
root.mainloop()