اذهب إلى المحتوى

Ahmed Ahmed64

الأعضاء
  • المساهمات

    222
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو Ahmed Ahmed64

  1. import openpyxl wb = openpyxl.load_workbook("test.xlsx") ws=wb['ورقة1'] if ws['E2'].value >50: ws['G2'] = ws['E2'].value elif ws['F2'].value >50: ws['G2'] = ws['F2'].value elif ws['F3'].value >50: ws['G2'] = ws['F3'] .value else: ws['L2'] = ws['E2'].value wb.save("test.xlsx") تعديل الكود حيث يمر على كل إسم وينفذ كما نفذ هذا الكود
  2. from openpyxl import * from openpyxl.styles import Font from openpyxl.styles import Border, Side from openpyxl.styles import PatternFill from tkinter import * root = Tk() root.configure(background='light green') root.title("registration form") root.geometry("400x300") wb = load_workbook('excel2.xlsx') sheet = wb.active sheet.column_dimensions['A'].width = 30 sheet.column_dimensions['B'].width = 15 sheet.column_dimensions['C'].width = 10 sheet.column_dimensions['D'].width = 10 sheet.column_dimensions['E'].width = 10 current_row = sheet.max_row current_column = sheet.max_column sheet.cell(row=1, column=1).value = "الإسم" sheet.cell(row=1, column=2).value = "رقم الجلوس" sheet.cell(row=1, column=3).value = "النتيجة" sheet.cell(row=1, column=4).value = "أعمال السنة" sheet.cell(row=1, column=5).value = "النهائي" def insert(): sheet.cell(row=current_row + 1, column=1).value = Entry1.get() sheet.cell(row=current_row + 1, column=2).value = Entry2.get() sheet.cell(row=current_row + 1, column=3).value = ("دور أول") sheet.cell(row=current_row + 2, column=3).value = ("دور ثاني") sheet.cell(row=current_row + 1, column=4).value = Entry3.get() sheet.cell(row=current_row + 1, column=5).value = Entry4.get() wb.save('excel10.xlsx') Label1 = Label(root, text="إسم الطالب", bg="light green").grid(row=1, column=0) Label2 = Label(root, text="رقم الجلوس", bg="light green").grid(row=2, column=0) Label3 = Label(root, text="أعمال السنة", bg="light green").grid(row=3, column=0) Label4 = Label(root, text="النهائي", bg="light green").grid(row=4, column=0) Entry1 = Entry(root) Entry1.grid(row=1, column=1, ipadx="100") Entry2 = Entry(root) Entry2.grid(row=2, column=1, ipadx="100") Entry3 = Entry(root) Entry3.grid(row=3, column=1, ipadx="100") Entry4 = Entry(root) Entry4.grid(row=4, column=1, ipadx="100") submit = Button(root, text="Submit", fg="Black",bg="Red", command=insert).grid(row=8, column=1) root.mainloop() هل يمكن تصحيح الكود حتى أصل لهذه النتيجة
  3. ممكن كيفية عمل كود يقوم بإستخراج كل القيم المطابقة للبحث من أكثر من شيت إكسل باستخدام openpyxl
  4. أشكرك أخي فعلا هذا ماقمت به الأن قبل الحصول على الجواب من حضرتك حيث أني إستخدمت label لذلك تحياتي أخي ( بارك الله فيك ) وزادك الله علماً طلب لو سمحت لو تدلني على كورس لكيفية طباعة ورقة تقرير أي أني أريد أن أستخرج تقرير مطبوع
  5. أخي الحبيب أشكرك جزيل الشكر والإمتنان على الوقت والجهذ المبذول منك لكي توصل المعلومة ولك مني كل التقدير والإحترام أخي الأن وصلت إلى المعلومة التي كنت أعجز عن القيام بها والأن وقفت عند جزئية بسيطة ولا أدري الخطأ أين المطلوب الأن بعد التحصل على قيمة المتغير A1 تمريرها إلى Entry def callbackFunc(event): value1=Combo1.get() A1= d[int(value1)] Entry1.config(text=A1)
  6. عند محاولة الطباعة لم يظهر لي شي ؟ print= d[int(value1)] رائع جداً مشكلة في تمرير القيمة (أين الخطأ ) def callbackFunc(event): value1=Combo1.get() A1= d[int(value1)] Entry1.text=A1
  7. def callbackFunc(event): value1=Combo1.get() print (d[value1]) numbers = [row["Employee-number"] for row in employee.values()] names = [row["Employee-name"] for row in employee.values()] d = {k:v for (k, v) in zip(numbers, names)} Combo1=ttk.Combobox(FORM_A,width=50,values=numbers) Combo1.bind("<<ComboboxSelected>>", callbackFunc) Combo1.pack(pady=30) يبد أن لدي خطأ هنا النتيجة تظهر لي قيمة نفس العمود بوجود خطأ كالتالي
  8. def callbackFunc(event): value1=Combo1.get() print(value1) Combo1=ttk.Combobox(FORM_A,width=50,values=numbers) Combo1.bind("<<ComboboxSelected>>", callbackFunc) Combo1.pack(pady=30) النتيجة تظهر القيمة المختارة من Combo1 أين الخطأ .... أريد إظهار القيمة المقابلة للقيمة المختارة من القاموس للمتغبر الذي أعطيته إسم d d = {k:v for (k, v) in zip(numbers, names)}
  9. numbers = [row["Employee-number"] for row in employee.values()] names = [row["Employee-name"] for row in employee.values()] d = {k:v for (k, v) in zip(numbers, names)} هل ماقمت به الأن صححيح ,, إذا كان ذلك كيف أتعامل مع الكومبوبكس في ذلك أم ينقص أم ما ,, هل حان الأمر الأن لأتعامل مع الكود التالي combo.bind("<<ComboboxSelected>>", callbackFunc) مثال هل يعمل الكود السابق بهكذا طريقة def callbackFunc(event😞 print("ok") Combo1.bind("<<ComboboxSelected>>", callbackFunc)
  10. ذكرت أني أحتاج أن أقوم بإنشاء قاموس إضافي مفاتيحة القيم من ال combo box حاولت برمجة هذا الكود ولاكن لم أستفد منه namme= {key:val for key,val in employee.items()} الرجاء توجيهي خطوة بخطوة لكي أستوعب المطلوب بشكل أفضل ما المطلوب أولا
  11. أنا هنا أستعمل قاموس ( الرجاء التوضيح أكثر ) على المثال المرسل حتى أفهم الطريقة
  12. أرجو المساعدة كيف أستطيع عند إختيار قيمة من أداة combo أن تظهر القيمة المقابلة لها من العمود الثاني أو على سبيل المثال العمود الثالت حيث أضهر النتيحة في مربع النص from tkinter import * from tkinter import ttk from openpyxl.workbook import workbook from openpyxl import load_workbook FORM_A=Tk() FORM_A.geometry('800x500') w_book1=load_workbook('Employee.xlsx') sheet_1=w_book1.active employee={} i=1 for row in sheet_1.iter_rows(min_row=1, max_row=9,min_col=1,max_col=5,values_only=True): id=i st={"Employee-number":row[0],"Employee-name":row[1],"employee-phone":row[2],"Employee-email":row[3],} i+=1 employee[id]=st numbers = [row["Employee-number"] for row in employee.values()] names = [row["Employee-name"] for row in employee.values()] Combo1=ttk.Combobox(FORM_A,width=50,values=numbers).pack(pady=30) Combo2=ttk.Combobox(FORM_A,width=50,values=names).pack(pady=30) print(employee) # هنا أريد إدراج قيمة العود الثاني المقابلة للعمود الأول عند الإختيار من أداة الكومبوبكس Entry1=Entry(FORM_A,width=50).pack(pady=30) FORM_A.mainloop() Employee.xlsx
  13. قمت بمحاولة أن أقوم بإدخال رقم الموضف لأستخرج البيانات الخاصة به من المصفوفة ولاكن عجزت أن أعملها , الرجاء المساعدة sr=input("رقم الموضف: ") if sr in employee: print(sr ,"mmmm",employee[sr]) else: print('sory')
  14. رائع أخي Kais Hasan أشكرك جزيل الشكر :,,,, لقد قمت بتطبيق الكود وتحصلت على النتيجة التي أردتها داخل أداة combo أرجو من حضرتك لو تساعدني كيف أستطيع عند إختيار قيمة من أداة combo أن تظهر القيمة المقابلة لها من العمود الثاني أو على سبيل المثال العمود الثالت حيث أضهر النتيحة في مربع النص from tkinter import * from tkinter import ttk from openpyxl.workbook import workbook from openpyxl import load_workbook FORM_A=Tk() FORM_A.geometry('800x500') w_book1=load_workbook('Employee.xlsx') sheet_1=w_book1.active employee={} i=1 for row in sheet_1.iter_rows(min_row=1, max_row=9,min_col=1,max_col=5,values_only=True): id=i st={"Employee-number":row[0],"Employee-name":row[1],"employee-phone":row[2],"Employee-email":row[3],} i+=1 employee[id]=st numbers = [row["Employee-number"] for row in employee.values()] names = [row["Employee-name"] for row in employee.values()] Combo1=ttk.Combobox(FORM_A,width=50,values=numbers).pack(pady=30) Combo2=ttk.Combobox(FORM_A,width=50,values=names).pack(pady=30) print(employee) # هنا أريد إدراج قيمة العود الثاني المقابلة للعمود الأول عند الإختيار من أداة الكومبوبكس Entry1=Entry(FORM_A,width=50).pack(pady=30) FORM_A.mainloop()
  15. مساعدة في إدراج قيم من القاموس إلى أداة Combobox مساعدة على هذا الكود from tkinter import * from tkinter import ttk from openpyxl.workbook import workbook from openpyxl import load_workbook # قمت بإنشاء نافذه FORM_A=Tk() FORM_A.geometry('800x500') # قمت بفتح ملف الأكسل و ورقة العمل w_book1=load_workbook('Employee.xlsx') sheet_1=w_book1.active # قمت بتحويل الحدول بورقة العمل إلى قاموس employee={} i=1 for row in sheet_1.iter_rows(min_row=1, max_row=9,min_col=1,max_col=5,values_only=True): id=i st={"Employee-number":row[0],"Employee-name":row[1],"employee-phone":row[2],"Employee-email":row[3],} i+=1 employee[id]=st print(employee) # هنا أريد إدراج قيم العود الأول Combo1=ttk.Combobox(FORM_A,width=50).pack(pady=30) # هنا أريد إدراج قيمة العود الثاني المقابلة للعمود الأول عند الإختيار من أداة الكومبوبكس Entry1=Entry(FORM_A,width=50).pack(pady=30) FORM_A.mainloop() Employee.rar
  16. أخي لقد طرحت سؤالي بعد تجريب الكود وهذا ما ظهر لدي وهوا رقم الخلية وليس القيمة الموجودة بالخلية أرجو تبسيط الكود أكثر أو طريقة أخرى لذلك from tkinter import * from tkinter import ttk from openpyxl.workbook import workbook from openpyxl import load_workbook form_A=Tk() form_A.geometry('500x500') wb=load_workbook('2003-2004.xlsx') ws=wb.active class KeyValueCombobox(ttk.Combobox): def __init__(self, master=None, cnf={}, **options): self.dict = None if 'values' in options: if isinstance(options.get('values'), dict): self.dict = options.get('values') options['values'] = sorted(self.dict.keys()) ttk.Combobox.__init__(self, **options) def get(self): if self.dict: return self.dict[ttk.Combobox.get(self)] else: return ttk.Combobox.get(self) def get_key(self): return ttk.Combobox.get(self) def get_value(self): return self.get() colum_A = ws['A'] items = {} for key, cell in enumerate(colum_A): items[str(key)] = str(cell.value) Combo1= KeyValueCombobox(form_A,values= items) def onSelect(event): cell_b = ws[f'B{Combo1.get_key()}'] print(cell_b.value) Combo1.bind('<<ComboboxSelected>>', onSelect) Combo1.pack(pady=30) form_A.mainloop() 2003-2004.xlsx
  17. ألف تحية لك أخي مسعود وزادك الله علما نافعا شكرا جزيلا الشرح بإذن الله واضح لاكن لو سمحت كيف أجعل قيمة الك Combobox التي تضهر للمستخدم قيم العمود A وليس رقم الخلية
  18. أشكرك جزيل الشكر أخي < مسعود زاهي > بارك الله فيك على الإجابة. أخي مسعود أطمع في مساعدة أخرى وقد عجزت عن تنفيذها ماذا لو كان لديا عمود أخر على سبيل المثال العمود B وأريد أن أجلب قيمة معينه من هذا العمود بناءا على القيمة التي تقابلها من العمود A وذلك تكمله للمثال السابق عن الأختيار من combobox حيث أريد عرض النتيجة في مربع النص.
  19. أرجو تصحيح الكود from tkinter import * from tkinter import ttk from openpyxl.workbook import workbook from openpyxl import load_workbook form_A=Tk() form_A.geometry('500x500') wb=load_workbook('2003-2004.xlsx') ws=wb.active colum_A = ws['A'] Combo1=ttk.Combobox(form_A,value=column_A) Combo1.pack(pady=30) form_A.mainloop()
  20. السلام عليكم كيف أستطيع جلب بيانات عمود معين من ملف إكسل إلى أداة combobox بلغة البايثون grab columns into combobox py python المكتبات المستخدمة tkinter , openpyxl أرجو التوضيح ولو بمثال عملي
×
×
  • أضف...