Ali Ali49 نشر 6 يونيو 2023 أرسل تقرير نشر 6 يونيو 2023 (معدل) السلام عليكم أستخدم لغة python أشكر كل من ساعدني مسبقاً في هذا الصرح العلمي الذي منه في الحقيقة إستفدت منه كثيراً أحبتي لدي هذا الكود ومحتاج به تعديل ولاكن جميع محولاتي لم تنجح عند عمل البرنامج الملف يتم تحميله عند التشغيل والذي موجود بهذا السطر BOOK1 = book_E('E:\people.xlsx') أحتاج أن يكون داخل زر ( Button ) في البداية هذا ملف الكلاس from openpyxl import load_workbook class book_E: def __init__(self, BATH): self.BATH = BATH self.workbook = load_workbook(BATH) self.sheet = self.workbook.active def column_values(self): self.column_values_list = [cell.value for cell in self.sheet['A']] return self.column_values_list def on_combobox_selected(self,combo,AM): self.combo = combo self.AM = AM selected_value = self.combo.get() row_index = self.column_values_list.index(selected_value) + 1 corresponding_value = self.sheet[self.AM + str(row_index)].value print(corresponding_value) وهنا الأن البرنامج الرئيسي from ttkbootstrap.constants import * import ttkbootstrap as ttk from LOOD_BOOK import book_E BOOK1 = book_E('D:\ABC.xlsx') column_values = "1" def COLS_V(BOOK1): combo_name.configure(values=BOOK1.column_values()) def on_combo_name_selected(event): BOOK1.on_combobox_selected(combo_name,"a") root = ttk.Window(themename="minty") frame = ttk.Frame(root) frame.pack() widgets_frame = ttk.LabelFrame(frame, text="طباعة") widgets_frame.grid(row=0, column=0, padx=20, pady=5, sticky="nsew") b1 = ttk.Button(widgets_frame, text="print", bootstyle=("info", "outline"),command=lambda:COLS_V(BOOK1)) b1.grid(row=0, column=0, padx=5, pady=5, sticky="ew") combo_name = ttk.Combobox(widgets_frame,justify=RIGHT,width=35,values=column_values) combo_name.current(0) combo_name.grid(row=1, column=0, padx=5, pady=5, sticky="ew") combo_name.bind("<<ComboboxSelected>>", on_combo_name_selected) root.mainloop() أحتاج كما أخبرتكم أن يكون تحميل الملف من خلال Button وأحتاج أيضاً تعديل في المتغير column_values كيف يتم معالجته بما تراه مناسب تم التعديل في 6 يونيو 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 Mustafa Suleiman نشر 6 يونيو 2023 أرسل تقرير نشر 6 يونيو 2023 في الكلاس book_E، عليك بتعديل الدالة __init__ لتستقبل المسار كمعامل افتراضي بدلاً من استخدام القيمة المباشرة: class book_E: def __init__(self, BATH=None): self.BATH = BATH self.workbook = None self.sheet = None def load_file(self): if self.BATH: self.workbook = load_workbook(self.BATH) self.sheet = self.workbook.active # ... الدوال الأخرى هنا ... وأيضًا تعديل دالة COLS_V لتحميل الملف عند النقر على زر "Button": def COLS_V(): file_path = "E:\people.xlsx" # المسار الذي تريده BOOK1 = book_E(file_path) BOOK1.load_file() combo_name.configure(values=BOOK1.column_values()) وعليك بتحديث الأمر المرتبط بزر "Button" في الكود الرئيسي ليستدعي الدالة COLS_V بدلاً من COLS_V(BOOK1): b1 = ttk.Button(widgets_frame, text="print", bootstyle=("info", "outline"), command=COLS_V) وبذلك عند النقر على زر "Button" سيتم تحميل الملف وتعيين القيم في combobox. أما بالنسبة لتعديل المتغير column_values، بإمكانك تغيير قيمته بناءً على ما تحتاجه في البرنامج، باستخدام دالة BOOK1.column_values() للحصول على قائمة القيم من الملف، ومن ثم تعيينها للمتغير column_values. كمثال: column_values = BOOK1.column_values() وتستطيع استخدام هذه القائمة لإعداد الخيارات المتاحة في combobox كما فعلت في الكود الحالي لديك. 1 اقتباس
0 Ali Ali49 نشر 6 يونيو 2023 الكاتب أرسل تقرير نشر 6 يونيو 2023 (معدل) عفوا أخي هل يبقى هذا الكود أعلى البرنامج أم يحذف , إذا حذف هذا الكود يقف البرنامج لإرتباط باقي الدوال بالمتغير BOOK1 BOOK1 = book_E('E:\people.xlsx') إستفسار أخر أين يتم وضع مكان هذا الكود column_values = BOOK1.column_values() أخي هل لك أن تعيد لي الكود كامل لأقوم بتجريبه لدي: الكود إنضرب لم يعمل لدي بعد التعديلات التي أخبرتني عنها تم التعديل في 6 يونيو 2023 بواسطة Ali Ali49 اقتباس
السؤال
Ali Ali49
السلام عليكم
أستخدم لغة python
أشكر كل من ساعدني مسبقاً في هذا الصرح العلمي الذي منه في الحقيقة إستفدت منه كثيراً
أحبتي لدي هذا الكود ومحتاج به تعديل ولاكن جميع محولاتي لم تنجح
عند عمل البرنامج الملف يتم تحميله عند التشغيل والذي موجود بهذا السطر
أحتاج أن يكون داخل زر ( Button )
في البداية هذا ملف الكلاس
وهنا الأن البرنامج الرئيسي
أحتاج كما أخبرتكم أن يكون تحميل الملف من خلال Button
وأحتاج أيضاً تعديل في المتغير column_values كيف يتم معالجته بما تراه مناسب
تم التعديل في بواسطة Mustafa Suleimanتعديل عنوان السؤال
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.