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

Ahmed Ahmed64

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

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

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

أجوبة بواسطة Ahmed Ahmed64

  1. السلام عليكم

    جمعة مباركة 

    إخوتي أريد توضيح بعض النقاط ولو بشرح مبسط

    في البداية أنا أستخدم مكتبة pandas للتعامل مع ملفات Excel 

    لدي خلفية بسيط عن طريق قراءة الملف بإستخدام pandas

    أريد شرح وتوضيح كيف ممكن أتعامل مع الأعمدة والصفوف

    مثلا كيف أجعل قيم العمود A عبارة عن LIST

    • أعجبني 1
  2. import customtkinter
    from PIL import Image
    import os
    from pathlib import Path
    import openpyxl
    from openpyxl import Workbook , load_workbook
    from openpyxl.utils import FORMULAE , units
    from openpyxl.comments import Comment
    from openpyxl.styles import fonts , Border, Side ,PatternFill
    from tkinter import filedialog
    
    DB=load_workbook("e.xlsx")
    DS=DB["abc"]
    
    employee={}
    i=1
    for A in DS.iter_rows(min_row=2, max_row=5,min_col=1,max_col=14,values_only =True):
        
        list=[A[6],A[7]]
        
        for u in list:
            if u.value is None:
               u = 0
                   
            max1=max(list)                  
              
          
        print(max1)
        i+=1

    السلام عليكم

    لدي شيت إكسل به مجموعة من الصفوف و الأعمدة

    عملت حلقة تكرار لجلب الصفوف والأعمدة المطلوبة و أردت أن أقارن بين عمودين أيهما القيمة الأكبر و إستطعت في ذلك

    ولكن المشكلة التي واجهتي  أن بعض الصفوف بها خلايا خالية ( فارغة ) وتظهر رسالة بمعناه لايمكن إيجاد القيمة الأكبر بوجود خلية فارغة 

    '>' not supported between instances of 'NoneType' and 'NoneType'

    كيف أحل هذه المشكلة

    المشكلة التي واجهتني أني أريد أن أقارن بين العمودين حتى لو كانت إحدي الخلايا الفارغة وإعطاء قيمة الخلية الأخرى

    وهل من طريق لإعطاء الخلية الفارغة قيمة 0 حتى تتم المقارنة بين العددين

    عملت بلغة البايثون و مكتبة openpyxl

     

  3. السلام عليكم

    لدي شيت إكسل به مجموعة من الصفوف و الأعمدة

    عملت حلقة تكرار لجلب الصفوف والأعمدة المطلوبة و أردت أن أقارن بين عمودين أيهما القيمة الأكبر و إستطعت في ذلك

    ولكن المشكلة التي واجهتي  أن بعض الصفوف بها خلايا خالية ( فارغة ) وتظهر رسالة بمعناه لايمكن إيجاد القيمة الأكبر بوجود خلية فارغة 

    '>' not supported between instances of 'NoneType' and 'NoneType'

    كيف أحل هذه المشكلة

    عملت بلغة البايثون و مكتبة openpyxl

     

    • أعجبني 1
  4. السلام عليكم ورحمة الله وبركاته

    أخوتي  أرجو المساعدة في كتابة الكود  

    عند تحميل ملف الإكسل من خلال الكود

    filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main",title="Open file okay?",filetypes= (("text files","*.xlsx"),("all files","*.*")))
    
    wb = load_workbook(filepath)

    وعند وضع متغير يجلب أسماء الشيت الموجودة بالملف

    a = wb.sheetnames

    هنا الأن أريد أن يأخذ الكومبوبكس هذه القيمة أو الأسماء ويعرضها للمستخدم

    كيف يتم ذلك ؟؟

    self.combobox_1 = customtkinter.CTkComboBox(self.login_frame, values=[])
    self.combobox_1.grid(row=2, column=0, padx=30, pady=(5, 15)) self.combobox_1.set("CTkComboBox")

     

  5. filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main",title="Open file okay?",filetypes= (("text files","*.xlsx"),("all files","*.*")))
           filepath = Path(filepath)
           book = load_workbook(filepath)
           a = book.sheetnames
           
          
           
           combobox_1 = customtkinter.CTkComboBox(self.login_frame, values=["Option 1", "Option 2", "Option 42 long long long..."])
           combobox_1.grid(row=5, column=0, padx=30, pady=(15, 15))
           combobox_1.set("CTkComboBox")

     

  6. أرجو منكم  تصحيح الكود للوصول لقيمة sheet

    def openFile():
        
        filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main",title="Open file okay?",filetypes= (("text files","*.xlsx"),("all files","*.*")))
        wb = load_workbook(filepath)
        sheet = wb.active 
                                              
    def a():
         
        abc=sheet.cell(row=9,column=4).value
        print(abc)
    openFile()
    a()

    حيث يظهر الخطأ التالي 

    NameError: name 'sheet' is not defined

    • أعجبني 1
  7. لدينا هذا الإجراء

    أريد التعديل عليه 

    def openFile():
        filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main",
                                              title="Open file okay?",
                                              filetypes= (("xlsx files","*.xlsx"),
                                              ("all files","*.*")))
        b1=load_workbook(filepath)
        s1=b1['إسم الشيت']
        a1=s1.cell(row=9,column=5).value
        print(a1)

    كيف نحول هذا الكود إلى كلاس وأستفيد منه داخل البرنامج حيث مثلا هنا 

    a1=s1.cell(row=9,column=5).value
        print(a1)

    أريد أن أطبقها داخل إجراء أخر أي أني أريد أن أصل لقيمة s1 في أي مكان في البرنامج مثلا

  8. كيف أستطيع التعامل مع ملف إكسل و ورقة العمل في أكثر من إجراء من خلال إستدعاء الكلاس

    import openpyxl
    from openpyxl import Workbook , load_workbook
    class Work :
      def __init__(self,b1,s1):
        self.b1=b1
        self.s1=s1
        b1 = load_workbook('إسم ملف الإكسل.xlsx')
        s1 = b1['إسم ورقة العمل']
    
    
    
    def s ():
        a=Work(a1,s1)
        
        print(a)
        
    print(s ()) 

     

  9. توصلت لهذه المرحلة 

    كيف أجعل الكود يمر الخانات الفارغة دون حدوث خطأ

    سؤال أخر ( كيف أجعل النتيخة في العمود G والذي يحتوي على خلايا مدموجة

    for ws_row in range (2,ws.max_row,2):
       for wk in range (2,ws.max_row,1):
       
        
        if ws.cell(ws_row,5).value > 50:
           ws.cell(row=ws_row,column=8).value = ws.cell(ws_row,5).value
          
        elif ws.cell(wk,6).value > 50:
            ws.cell(row=wk,column=8).value = ws.cell(wk,6).value

     

  10. أين الخطأ هنا 

    for ws_row in range (2,ws.max_row+1):
        g=ws.cell(ws_row,5).value
        r=ws.cell(ws_row,6).value
        q=ws.cell(ws_row+1,6).value
        
        if g.value ==int(50):
           ws.cell(row=ws_row,column=7).value = g
        elif r.value ==int(50):
            ws.cell(row=ws_row,column=7).value =r 
        elif q.value ==int(50):
            ws.cell(row=ws_row,column=7).value = q 

     

×
×
  • أضف...