float (export_entry.get ()) AttributeError: объект 'NoneType' не имеет атрибута 'get' - PullRequest
0 голосов
/ 24 февраля 2020

Я хочу показать в 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()

1 Ответ

0 голосов
/ 24 февраля 2020

Я не вижу, куда вы импортируете или определяете 'export_entry'.

Обычно, когда у меня появляются сообщения об ошибках AttributeError: NoneType, это означает, что моя переменная не определена. Вот почему скрипт не может выполнить 'get ()'.

В этом случае я подозреваю, что это проблема.

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