diff --git a/__pycache__/reading_sheet.cpython-313.pyc b/__pycache__/reading_sheet.cpython-313.pyc new file mode 100644 index 0000000..7b4df81 Binary files /dev/null and b/__pycache__/reading_sheet.cpython-313.pyc differ diff --git a/main.py b/main.py index fbd3073..cfe1711 100644 --- a/main.py +++ b/main.py @@ -2,6 +2,8 @@ import tkinter as tk from tkinter import filedialog import algam import save +from reading_sheet import ReadingSheet + #def Pars(): @@ -14,7 +16,7 @@ import save def Pars(): data = algam.ReadMifDirectory().find_mif_files(directory=directory_entry.get()) - save.SaveDataXLSX(file_path=file_to_save_entry.get(),sheet_name="Лист1",data=data) + save.SaveDataXLSX(file_path=file_to_save_entry.get(),sheet_name=drop_var_two.get(),data=data) root = tk.Tk() root.title("Parser11(отяет по mif)") @@ -34,6 +36,18 @@ def open_excel_file(event, entry): entry.delete(0, tk.END) entry.insert(0, excel_path) + options.clear() + readingSheets = ReadingSheet(path=excel_path) + sheets = readingSheets.Read() + for _sheet in sheets: + options.append(_sheet) + + drop_var_two.set(options[0]) + menu = dropdown_two["menu"] + menu.delete(0,"end") + for option in options: + menu.add_command(label=option, command=tk._setit(drop_var_two,option)) + # первое поле с списком file_to_save_label = tk.Label(root, text="файл_для_сохранения", font=font) file_to_save_label.pack(anchor="w") @@ -41,6 +55,10 @@ file_to_save_entry = tk.Entry(root, font=font, width=70) file_to_save_entry.pack(anchor="w") file_to_save_entry.bind("", lambda event: open_excel_file(event, file_to_save_entry)) +drop_var_two=tk.StringVar() +dropdown_two = tk.OptionMenu(root, drop_var_two, *options) +dropdown_two.pack(anchor="w") + directory_label = tk.Label(root, text="Выберите директорию c mif:", font=font) directory_label.pack(anchor="w") directory_entry = tk.Entry(root, font=font, width=70) diff --git a/reading_sheet.py b/reading_sheet.py new file mode 100644 index 0000000..579166c --- /dev/null +++ b/reading_sheet.py @@ -0,0 +1,17 @@ +import openpyxl + +class ReadingSheet(): + """ + класс для чтения листов в книгах + path - путь к файлу + """ + def __init__(self, path): + self.path = path + """path - путь к файлу""" + + def Read(self): + """прочитать и вернуть все листы в виде массива названия листов""" + workbook = openpyxl.load_workbook(self.path) + sheets = workbook.sheetnames + workbook.close() + return sheets \ No newline at end of file diff --git a/save.py b/save.py index 4844b79..e09f945 100644 --- a/save.py +++ b/save.py @@ -4,7 +4,7 @@ class SaveDataXLSX(): def __init__(self,file_path:str,sheet_name:str,data): wb = xl.load_workbook(filename=file_path) sheet = wb[sheet_name] - max_row = sheet.max_row+2 + max_row = sheet.max_row+1 for new_row,file in enumerate(data): sheet.cell(row=max_row+new_row,column=2,value=file.directory) sheet.cell(row=max_row+new_row,column=3,value=file.cad_number)