float(export_entry.get())AttributeError:'NoneType'对象没有属性'get'

2024-09-29 02:21:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在GUI中显示excel文件中的特定行(作为标签或消息)。在这种情况下,用户将输入他想要查看的周In this case 5。但是我得到了错误F=float(export\u entry.get()) AttributeError:“非类型”对象没有属性“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()

Tags: textimportwscolumnrootxlsxexceltk
1条回答
网友
1楼 · 发布于 2024-09-29 02:21:57

我看不到您在哪里导入或定义“导出项”

通常,当我有AttributeError:NoneType错误消息时,这意味着我的变量没有定义。这就是脚本无法执行“get()”的原因

在这种情况下,我怀疑这就是问题所在

相关问题 更多 >