-
المساهمات
26 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Ali Ali49
-
إخي بارك الله فيك تمام الكود يعمل كما كنت إريد لنفترض أني قمت بالتعديل التالي أين الخطأ الأن from openpyxl import load_workbook import ttkbootstrap as ttk from tkinter import filedialog class load_document: 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 BOOK1 = load_document() column_values=() def COLS_V(): # اختيار الملف file_path = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main",title="Open file okay?",filetypes= (("text files","*.xlsx"),("all files","*.*"))) BOOK1 = load_document(file_path) BOOK1.load_file() def COLS_V2(): global column_values column_values = BOOK1.workbook.sheetnames # تحديث قيم Combobox combo['values'] = column_values # أدوات الواجهة 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="إختر الملف", bootstyle=("info", "outline"), command=COLS_V) b1.grid(row=0, column=0, padx=5, pady=5, sticky="ew") b2 = ttk.Button(widgets_frame, text="إدرج أوراق العمل للقائمة", bootstyle=("info", "outline"), command=COLS_V2) b2.grid(row=1, column=0, padx=5, pady=5, sticky="ew") #----------------------------------------------------------- combo = ttk.Combobox(widgets_frame, values=column_values) combo.grid(row=2, column=0, padx=5, pady=5, sticky="ew") root.mainloop()
- 4 اجابة
-
- 1
-
السلام عليكم الرجاء تصحيح كتابة الكود حيث أريد جلب إسم إوراق العمل من ملف الإكسل إلى أداة Combobox عند إختيار الملف الكود الأول ملف كلاس مستقل from openpyxl import load_workbook class load_document: 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 كود البرنامج import ttkbootstrap as ttk from ttkbootstrap.constants import * from openpyxl import load_workbook from pathlib import Path from tkinter import filedialog from L_Documents import load_document BOOK1 = load_document() column_values=() def COLS_V(): file_path = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main",title="Open file okay?",filetypes= (("text files","*.xlsx"),("all files","*.*"))) BOOK1 = load_document(file_path) BOOK1.load_file() column_values = BOOK1.workbook.sheetnames # أدوات الواجهة 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="إختر الملف", bootstyle=("info", "outline"), command=COLS_V) b1.grid(row=0, column=0, padx=5, pady=5, sticky="ew") #----------------------------------------------------------- combo = ttk.Combobox(widgets_frame, values=column_values) combo.grid(row=2, column=0, padx=5, pady=5, sticky="ew") root.mainloop()
- 4 اجابة
-
- 1
-
فعلا أخي لقد إستخدمت ملفك الخاص كا موضح لك بالصور بالأعلى والخطأ الذي يظهر المشكلة ليست في ظهور القائمة العمود A في القائمة المنسدلة ولاكن المشكلة عند إختيار خيار من القائمة المنسدلة لطباعة القيمة المقابلة للعمود A إلا هوا حاليا وضعت العمود B هنا تظهر رسالة الخطأ هل لك أن تقوم بتعديل على الأكواد بحيث عند تشغيل البرنامج تكون أداة الكومبوبكس خالية من القيم إلى حين الضغط على زر لتحميل القائمة بها ومن ثم أقوم [ بإخيار قيمة منها لطباعة القيمة المقابلة لها من الجدول ] هذه النتيجة التي أريد أن أصل لها حالياً ( قيمة العمود B المقابلة للعمود A )
-
أسف أخي لقد أكثرت عليك بالأسئلة و أشكرك على رحب صدرك لاكن المشكلة لا زالت قائمة ( أخي لكي تتضح لك المشكلة شغل البرنامج ومن ثم إضغط الزر عندها سوف تكون لديك قائمة داخل القائمة المنسدلة إختر إحداها ، هنا سوف يظهر لديك خطأ ( كيف أستطيع إصلاح هذا الخطأ ) وهذا الذي ذكرته لك مسبقاً والخطأ يحدث هنا على ما أعتقد print(corresponding_value) قم بتجربة الكود والتحقق من الخطأ أخي 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 # +1 لأن الصفوف تبدأ من 1 وليس 0 corresponding_value = self.sheet[self.AM + str(row_index)].value # افتراضًا العمود الثاني (B) print(corresponding_value)
-
مالخطأ بهذا الكود أولا كود ( class ) from openpyxl import load_workbook 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 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() column_values = "1" def COLS_V(): file_path = "E:\people.xlsx" BOOK1 = book_E(file_path) BOOK1.load_file() combo_name.configure(values=BOOK1.column_values()) def sheet_Names(BOOK1): q = BOOK1.workbook.sheetnames return q def COL1_V(BOOK1): q = BOOK1.sheet['A2'].value #-------------------------------------------------------------------------------------------- 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=COLS_V) 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() هذا الخطأ AttributeError: 'book_E' object has no attribute 'column_values_list'
- 13 اجابة
-
- 1
-
عفوا أخي هل يبقى هذا الكود أعلى البرنامج أم يحذف , إذا حذف هذا الكود يقف البرنامج لإرتباط باقي الدوال بالمتغير BOOK1 BOOK1 = book_E('E:\people.xlsx') إستفسار أخر أين يتم وضع مكان هذا الكود column_values = BOOK1.column_values() أخي هل لك أن تعيد لي الكود كامل لأقوم بتجريبه لدي: الكود إنضرب لم يعمل لدي بعد التعديلات التي أخبرتني عنها
-
السلام عليكم أستخدم لغة 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 كيف يتم معالجته بما تراه مناسب
- 2 اجابة
-
- 1
-
أشكر أخي ( لقد فهمت الأن سبب المشكلة ) في الحقيقة أخي أنا أتعلم من هذه الأخطاء التي تحدث . طلب أخر أخي أنا فعلا لأحتاج أن أطبع def COLS_V(BOOK1): B = BOOK1.column_values() print(B ولكن وضعتها لأرى عمل الكود ولاكن أنا أحتاج أن ينفذ الكود داخل أداة combobox in tkinter عند الضغط على الزر تتحمل list بالكود السابق إلى هذه الأداة هل ينفع الأمر هكذا column_values = "" def COLS_V(BOOK1): q = BOOK1.column_values() column_values = q 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") ما الكود السليم في هذه الحالة؟ أشكر مساعدتكم
-
أشكرك جزيل الشكر إستفسار لو سمحت ( ما وظيفة lambda ) قمت بمراجعة التعديلات وحدثت معي مشكلة وهي في البداية وعند الضغط للمرة الأولى على الزر يعمل الكود ولايوجد مشكلة ولاكن عند الضغط على الزر من جديد تحدث هنا المشكلة السؤال هنا لماذا تحدث هذه المشكلة؟ هذا نص الخطأ TypeError: 'list' object is not callable
-
السلام عليكم من فضلكم أحتاج مراجعة لهذا الكود في البداية قمت بإنشاء هذا الكلاس 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 = [cell.value for cell in self.sheet['A']] return self.column_values من ثم في صفحة البرنامج قم بإنشاء هذا الكود from ttkbootstrap.constants import * import ttkbootstrap as ttk from LOOD_BOOK import book_E BOOK1 = book_E('d:\abc.xlsx') def sheet_Names(BOOK1): A = BOOK1.workbook.sheetnames return q def COLS_V(BOOK1): B = BOOK1.column_values() print(q) def COL1_V(BOOK1): C = BOOK1.sheet['A2'].value #-------------------------------------------------------------------------------------------- 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=COLS_V(BOOK1)) b1.grid(row=0, column=0, padx=5, pady=5, sticky="ew") root.mainloop() المشكلة التي تحدث أنه قبل الضغط على الزر طباعة في واجهة البرنامج البرنامج يقوم بتنفيذ الأمر وحده عند تشغيل البرنامج داخل TERMINAL أين الخطأ في ذلك أحبتي
- 4 اجابة
-
- 1
-
,, قمت بتعديل الكود كما أوضحت لي تماما .. قمت بإستدعاء الدالة بهذه الكيفية a = W_book('d:\abc.xlsx',g1) a.x() m = g1 حيث إريد أن يأخد المتغير m قيمة g1 هل الكود سليم بهذه الكيفية
-
أرجو المساعدة يوجد خطأ بهذا الكود الرجاء التحقق منه from openpyxl import load_workbook class W_book: def __init__(self, BATH,A): self.BATH = BATH self.A = A def W(self): self.workbook = load_workbook(self.BATH) self.sheet = self.workbook.active self.column_values = [cell.value for cell in self.sheet['A']] def X(self): self.A = self.column_values
- 3 اجابة
-
- 1
-
أحسنت , جزاك الله خيراً أستاذي ( Mustafa ) أستاذي أرجو المعذرة أحتاج إضافة على الكود السابق وهو الكود التالي from openpyxl import load_workbook class W_book: def __init__(self, BATH): self.BATH = BATH self.workbook = load_workbook(BATH) self.sheet = self.workbook.active لإضافة السطر التالي column_values = [cell.value for cell in sheet['A']] وهذا إجتهادي في تعديل الكود from openpyxl import load_workbook class W_book: def __init__(self, BATH): self.BATH = BATH self.workbook = load_workbook(BATH) self.sheet = self.workbook self.column_values = [cell.value for cell in self.sheet['A']]
-
السلام عليكم أتعامل مع لغة python في كتابة الكود أستخدم مكتبة Openpyxl للتعامل مع ملفات Excel Workbooks أحاول أن أطبق عمل class في كتابة الأكواد بحيث يكون لدي ملف مستقل به مجموعة من الأكواد أقوم من خلاله بإستدعاء الكود المطلوب تنفيذه في البرنامج الرئيسي أردت أن أطبق عمل class على إستدعاء ملف إكسل وورقة العمل ( Workbooks , sheet ) إعلم أن الكود العادي لتنفيذ ذلك هو كا الأتي workbook = load_workbook('D:\abc.xlsx') sheet = workbook.active كيف أقوم بتحويل هذا الكود إلى class أو إجراء داخل الكلاس , حيث أستطيع أن أتعامل معه , وأصل إليه في أي مكان عند كتابة الكود داخل البرنامج أحتاج أن أحتر ف أكثر في كتابة الكود وهذا إجتهادي في ذلك from openpyxl import load_workbook class W_book : def __init__(self,workbook,sheet,BATH): self.workbook = workbook self.sheet = sheet self.BATH = BATH workbook = load_workbook(BATH) sheet = workbook.active وعند الأستدعاء من صفحة البرنامج from cls1 import W.book بعد ذلك أقوم بتعريف متغير a = W.book(workbook, sheet, 'D:\ABC.xlsx' ) هل هذا صحيح , ولاكن كيف أتعامل مع المتغيرات بسلاسة عند كتابة الأكود كا أن أستدعي إسم sheet مثلا في باقي الأكود لسحب القيم من الأعمدة و الصفوق مثلا لذلك.
-
السلام عليكم أعمل على لغة بايثون حالياً أعمل على تطبيق وأستخدمت فيه مكتبة Tkinter لتصميم واجهة ومكتبة Openpyxl للتعامل مع ملفات الإكسل ( Excel ) من أدوات مكتبة Tkinter توجد أداة أسمها Combobox ( القائمة المنسدلة ) لدي ملف أكسل يحتوي عل أعمدة وصفوف قمت بتحميل بيانات العمود الأول ووضعة داخل أداة Combobox سؤالي لكم أحبتي عند إختيار قيمة من القائمة المنسدلة ( Combobox ) أحتاج أن تظهر القيمة المقابلة لها أو بمعنى أخر جلب القيمة المقابلة لها من نفس الصف من العمود الأخر أنا من يحدده إضهار النتيجة على أداة النص أو طباعتها مثلا. أرجو أن يكون السؤال واضح لكم .
- 4 اجابة
-
- 1