-
المساهمات
2957 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
13
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Chihab Hedidi
-
بالطبع يمكنك استخدام مكتبة pandas في Python لحفظ ملف Excel جديد ولحفظ البيانات في نفس الملف، حيث بعد إنشاء DataFrame جديدة باستخدام بياناتك، يتم حفظها في ملف Excel جديد، ثم يتم قراءة الملف للتحقق من الحفظ الصحيح، وبعد ذلك يتم إضافة بيانات جديدة إلى DataFrame ويتم الدمج بينها وبين البيانات الموجودة في الملف السابق، ثم يتم حفظ النتيجة في نفس الملف. فيما يلي مثال بسيط: import pandas as pd # قم بإنشاء DataFrame جديدة (يمكنك استخدام بياناتك الفعلية) data = {'Column1': [1, 2, 3], 'Column2': ['A', 'B', 'C']} df = pd.DataFrame(data) # اسم الملف الجديد file_path = 'مسار_الملف/اسم_الملف.xlsx' # حفظ DataFrame في ملف Excel جديد df.to_excel(file_path, index=False) # إعادة قراءة الملف للتحقق من الحفظ الصحيح df_read = pd.read_excel(file_path) # قم بإضافة بيانات جديدة إلى DataFrame new_data = {'Column1': [4, 5], 'Column2': ['D', 'E']} df_new = pd.DataFrame(new_data) # الدمج بين DataFrame الحالية والبيانات الجديدة df_combined = pd.concat([df_read, df_new], ignore_index=True) # حفظ البيانات المدموجة في نفس الملف df_combined.to_excel(file_path, index=False) print("تم حفظ البيانات بنجاح.") يرجى تغيير مسار_الملف/اسم_الملف.xlsx إلى المسار الذي تريد حفظ الملف فيه،
-
إذا كنت تستخدم مكتبة tkinter يمكنك استخدام الدالة os.path.basename() لاستخراج اسم الملف من المسار الكامل الذي تم اختياره، فيما يلي مثال بسيط: import tkinter as tk from tkinter import filedialog import os def open_file_dialog(): file_path = filedialog.askopenfilename() if file_path: file_name = os.path.basename(file_path) print("اسم الملف:", file_name) # إعداد النافذة الرئيسية root = tk.Tk() root.withdraw() # لإخفاء النافذة الرئيسية إذا لم تكن مطلوبة # زر لفتح مربع حوار اختيار الملف button = tk.Button(root, text="اختيار ملف", command=open_file_dialog) button.pack() # تشغيل البرنامج root.mainloop() عند تشغيل هذا البرنامج، سيتم فتح مربع حوار لاختيار ملف، وبعد اختيار الملف سيتم طباعة اسم الملف.
- 2 اجابة
-
- 1
-
-
يظهر هذا الخطأ عندما يكون هناك تضارب في إستخدام Tk و Toplevel في تصميم الواجهة الرسومية، و الظاهر أن الخطأ قد يكون ناتجا عن توريث الفئة Menu من customtkinter.CTkFrame و App في الوقت نفسه، مما يؤدي إلى إنشاء نافذة رئيسية و Toplevel في نفس الوقت. لتجنب هذا الخطأ، يمكنك إزالة الوراثة المتعددة واستخدام واجهة المستخدم الرئيسية App كنافذة رئيسية واستخدام Menu كـ Toplevel إذا كنت بحاجة إلى نافذة فرعية. و هذا الكود المصحح: import customtkinter import tkinter as tk from tkinter import filedialog, messagebox, ttk import pandas as pd from pathlib import Path class App(customtkinter.CTk): def __init__(self): super().__init__() self.title("App-v1") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(1, weight=1) Menu(self) def File_dialog(self): self.filename = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main", title="Open file okay?", filetypes=(("text files", "*.xlsx"), ("all files", "*.*"))) self.label_file["text"] = self.filename return None def Load_excel_data(self): file_path = self.label_file["text"] try: excel_filename = r"{}".format(file_path) if excel_filename[-4:] == ".csv": df = pd.read_csv(excel_filename) else: df = pd.ExcelFile(excel_filename) self.optionmenu1.configure(values=df.sheet_names) self.label2["text"] = df.sheet_names except ValueError: tk.messagebox.showerror("Information", "The file you have chosen is invalid") return None except FileNotFoundError: tk.messagebox.showerror("Information", f"No such file as {file_path}") return None class Menu(tk.Toplevel): def __init__(self, master): super().__init__(master) self.title("Menu") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(1, weight=1) self.create_widgets() def create_widgets(self): self.button1 = customtkinter.CTkButton(self, text='Button 1', command=self.master.File_dialog) self.button1.grid(row=0, column=0, sticky='e') self.label_file = ttk.Label(self, text="") self.label_file.grid(row=1, column=0, sticky='e') self.button2 = customtkinter.CTkButton(self, text='Button 2', command=self.master.Load_excel_data) self.button2.grid(row=2, column=0, sticky='e') self.label2 = ttk.Label(self, text="") self.label2.grid(row=3, column=0, sticky='e') self.optionmenu1 = customtkinter.CTkOptionMenu(self, values=["إختر ورقة العمل"], font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold")) self.optionmenu1.grid(row=4, column=0, padx=(10, 10), pady=(10, 10), sticky="e") app = App() app.mainloop()
-
يشير الخطأ إلى مشكلة في محاولة إعادة ترتيب DataFrame باستخدام الفهرس، و أدى هذا إلى تعارض في القيم و يعتبر الفهرس جزءا مهما في هيكل DataFrame، حيث يجب أن يكون لكل صف قيمة فريدة في الفهرس. لمعالجة هذا الخطأ تأكد من أن الفهرس لديك لا يحتوي على قيم مكررة عن طريق الكود التالي: df[df.index.duplicated()] في حالة وجدت قيما مكررة، قم بتصحيحها بالكود التالي: df = df[~df.index.duplicated()]
-
ابحث عن ملفات السجل أو log files التي تم إنشاؤها أثناء عملية التحويل، يمكن أن تحتوي هذه الملفات على معلومات قد تساعد في تحديد سبب المشكلة، ربما لم يتم بناء البرنامج بشكل صحيح. إذا لم يكن هناك ايرورز جرب إستخدام مكتبة أخرى و أنصحك ب PyInstaller لأنني إستعملتها من قبل و كانت تشتغل بدون مشاكل.
-
مرحبا كمال، اذا كانت قاعدة البيانات تتصل بدون أي مشاكل، أرفق ملف المشروع للإطلاع عليه أكثر. بالتوفيق.
-
مرحبا كمال، حاول استخدام هذا الكود وتأكد من أن جميع علامات PHP تأتي بالترتيب الصحيح: <?php $server = 'DESKTOP-PJDLJNR'; $database = 'Legacy'; $username = ''; $password = ''; $connection = new PDO("sqlsrv:Server=$server;Database=$database", $username, $password); if (!$connection) { die(print_r(sqlsrv_errors(), true)); } $sql_query = 'SELECT * FROM Problemss'; $statement = $connection->query($sql_query); ?> <table border="1" width="100%"> <tr> <th>تم</th> <th>الحلول</th> <th>المشكلة</th> <th>م</th> <th>الرقم</th> </tr> <?php while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { ?> <tr> <td><?php echo $row['تم']?></td> <td><?php echo $row['الحلول']?></td> <td><?php echo $row['المشكلة']?></td> <td><?php echo $row['م']?></td> <td><?php echo $row['الرقم']?></td> </tr> <?php } ?> </table> <?php $connection = null; // إغلاق الاتصال بقاعدة البيانات ?> بالتوفيق إن شاء الله.
-
مرحبا كمال، يبدو أن هناك خطأ في تركيبة كود PHP الخاص بك، بحيث أن العبارة print_r($row); يجب أن تكون خارج الحلقة وقبل جدول HTML، و أيضا يجب عليك إغلاق علامة PHP بشكل صحيح قبل بدء كود HTML. هذا كود ال php بعد التصحيح: <?php $server = 'DESKTOP-PJDLJNR'; $database = 'Legacy'; $username = ''; $password = ''; $connection = new PDO("sqlsrv:Server=$server;Database=$database", $username, $password); if (!$connection) { die(print_r(sqlsrv_errors(), true)); } $sql_query = 'SELECT * FROM Problemss'; $statement = $connection->query($sql_query); ?> <table border="1" width="100%"> <tr> <th>تم</th> <th>الحلول</th> <th>المشكلة</th> <th>م</th> <th>الرقم</th> </tr> <?php while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { ?> <tr> <td><?php echo $row['تم']?></td> <td><?php echo $row['الحلول']?></td> <td><?php echo $row['المشكلة']?></td> <td><?php echo $row['م']?></td> <td><?php echo $row['الرقم']?></td> </tr> <?php } $connection = null; // close the connection ?> </table> تأكد من استبدال القيم المؤقتة لـ $username و $password بالقيم الفعلية لاعتمادك على قاعدة البيانات. بالتوفيق إن شاء الله @كمال صالح محمد
-
الخطأ الذي تواجهه يحدث عندما يكون لديك أعمدة متكررة في DataFrame الخاص بك، مما يؤدي إلى فشل عملية إعادة التسمية (Reindexing) لحل هذا الخطأ، يمكنك إضافة ignore_index=True عند استخدام دالة concat و يمكنك تغيير السطر البرمجي الأخير ليصح كالتالي: result = pd.concat(frames, ignore_index=True) بهذه الطريقة، ستقوم pandas بإعادة ترقيم الفهارس بشكل فريد بدلا من محاولة استخدام الفهارس الحالية، مما يمنع حدوث الخطأ الذي تواجهه.
- 1 جواب
-
- 1
-
-
هو المتغير الذي فيه البيانات التي ستحفظها في الملف، لنفرض مثلا ان ملف الاكسل الخاص بك فيه عمودين name و email ، يكون المتغير بهذه الطريقة: row_information = {"Name": "شهاب", "Email": "chihab@mail.com"}
- 3 اجابة
-
- 1
-
-
حل الأسئلة الإختبارية لا نجيبه بشكل مباشر و لكن سأشرح لك طريقة الحل لتستطيعي كتابة الحل بمفردك، أولا يجب عليك الطلب من المستخدم إدخال رقم الموظف الذين يريد أن يبحث عنه، نستخدم Scanner لاستقبال إدخال المستخدم. للبحث في المصفوفة نستخدم حلقة for-each للانتقال عبر جميع العناصر في المصفوفة ونقوم بمقارنة كل عنصر (رقم الموظف) مع الرقم الذي أدخله المستخدم، إذا تم العثور على تطابق، نعين المتغير ليكن مثلا بإسم found على القيمة true ونوقف الحلقة بإستخدام break. في الأخير ادوات الشرط if-else لطباعة نتيجة البحث، حيث اذا كان الموظف موجود (قيمة found هي true)، نطبع "الموظف موجود في القائمة". - إذا لم يتم العثور على الموظف نطبع "الموظف غير موجود في القائمة".
-
هذه الميثود غير موجودة في مكتبة Pandas يمكن استعمال الميثود loc بحيث تقوم بالتأشير على السطر الأخير بعدها تضيف المعلومات فيه، و هذا كود لتفهم أكثر: df = pd.read_excel("example.xlsx") df.loc[len(df)] = row_information df.to_excel("example.xlsx", index=False) نستخدم loc لتحديد سطر في DataFrame باستخدام الفهرس (index). في هذا السياق، استخدمت len(df) للإشارة إلى السطر الأخير في DataFrame ومن ثم إضافة معلومات الصف الجديدة row_information إلى هذا السطر.
-
لديك بعض المشكلات في الربط بين الكلاسات في الكود الخاص بك، يجب عليك تصحيح الطريقة التي تقوم بها بتمرير الـ method إلى الأزرار داخل Frame2، يجب تمرير instance من الكلاس App إلى Frame2 واستخدام هذا الـ instance لاستدعاء الـ LoadFile و LoadFile1. إليك الكود المصحح: import customtkinter from tkinter import filedialog from pathlib import Path import pandas as pd class App(customtkinter.CTk): def __init__(self): super().__init__() self.FilePath = None self.sh = None self.title("App-v1") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(1, weight=1) customtkinter.set_appearance_mode("dark") customtkinter.set_default_color_theme("green") Frame_A = Frame1(self) Frame_A.grid(row=0, column=0, padx=(10, 10), pady=(10, 10), sticky="ew", columnspan=2) Frame_A.grid_columnconfigure(0, weight=1) Frame_A.configure(border_width=1, border_color="#0087f2") Frame_B = Frame2(self) Frame_B.grid(row=1, column=0, padx=(10, 10), pady=(10, 10), sticky="news") Frame_B.grid_columnconfigure(0, weight=1) Frame_B.configure(border_width=1, border_color="#0087f2") def LoadFile(self): self.FilePath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main", title="Open file okay?", filetypes=(("text files", "*.xlsx"), ("all files", "*.*"))) return self.FilePath def LoadFile1(self): df = pd.ExcelFile(self.FilePath) self.sh = df.sheet_names print(self.sh) class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.label1 = customtkinter.CTkLabel(self, text="Welcome", fg_color="transparent", font=customtkinter.CTkFont(family="Calibri", size=18, weight="bold"), justify="center") self.label1.grid(row=0, column=0, padx=(10, 10), pady=(10, 10), sticky="n") class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) # تمرير الـ instance من الـ App لـ Frame2 self.button1 = customtkinter.CTkButton(self, text="Open File", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=master.LoadFile) # استخدام الـ instance لاستدعاء الـ method self.button1.grid(row=0, column=0, padx=(10, 10), pady=(10, 10), sticky="e") self.button2 = customtkinter.CTkButton(self, text="Open File", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=master.LoadFile1) # استخدام الـ instance لاستدعاء الـ method self.button2.grid(row=0, column=1, padx=(10, 10), pady=(10, 10), sticky="e") app = App() app.mainloop() قمت بتعديل الأزرار داخل Frame2 لتمرير الـ instance الخاصة بـ App واستخدمتها لاستدعاء الـ method.
-
للوصول إلى المتغيرات بين الكلاسات في لغة البرمجة، يمكنك استخدام مفهوم الوراثة حيث تسمح لك بإنشاء كلاس جديد يرث الخصائص والسلوكيات من كلاس آخر. سأحاول أن اشرح لك بمثال متفهم أكثر: لنفترض أنه لدينا Class A مع دالة ترجع قيمة: class A: def __init__(self): self.result = 0 def do_something(self): # قم بعملية هنا واحتفظ بالناتج في self.result self.result = 42 ثم لنقم بإنشاء Class B ونرث من Class A: class B(A): def __init__(self): # يمكنك استدعاء __init__ من الكلاس الأساسي باستخدام super() super().__init__() def do_another_thing(self): # يمكنك الآن الوصول إلى self.result من Class A print(f"The result from Class A is: {self.result}") و بهذا يمكنك استخدام Class B والوصول إلى المتغير result الذي تم حفظه في Class A بواسطة دالة do_something: # إنشاء كائن من Class B obj_b = B() # استدعاء الدالة do_something التي تأتي من Class A obj_b.do_something() # استخدام الدالة do_another_thing التي تأتي من Class B obj_b.do_another_thing() وهذا المفهوم عام ويمكن تطبيقه بطرق مختلفة حسب اللغة.
- 1 جواب
-
- 1
-
-
مرحبا، يمكنك إستخدام ميزة فلتر مثل ما ذكر الأخ عبد الباسط ولكن لم توضح بعد الفكرة التي تريدها، يعني لا يمكنك إخفاء خانة واحدة لأنه سيحدث خلل في ترتيب الأعمدة و الصفوف، يمكنك فقط إما إخفاء سطر كامل و عمود كامل، و اذا كنت تقصد فكرة أخرى أرجو أن تشرحها مرة أخرى. بالتوفيق إن شاء الله.
- 45 تعليقات
-
- if
- الدالة الشرطية
-
(و 3 أكثر)
موسوم في:
-
الكود الذي ارسلته يشتغل بدون اي مشاكل، اذا قمت بتعديل آخر أرسل الكود الجديد.
-
نعم يمكنك ذلك بحدث الكود من داخل Fram1 و تكتبه داخل App بهذه الطريقة: import customtkinter class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.button1 = customtkinter.CTkButton(self, text="إختيار ملف", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold")) self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w") class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.checkbox_1 = customtkinter.CTkCheckBox(self, text="checkbox 1") self.checkbox_1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="w") class Frame3(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold")) self.button2.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="w") class App(customtkinter.CTk): def __init__(self): super().__init__() self.title("my app") self.geometry("400x180") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(0, weight=1) self.Frame_A = Frame1(self) self.Frame_A.configure(border_color="red", border_width=3 ,fg_color="blue") self.Frame_A.grid(row=0, column=0, padx=1, pady=(1, 0), sticky="nswe") self.Frame_B = Frame2(self) self.Frame_B.grid(row=0, column=1, padx=1, pady=(1, 0), sticky="nswe") self.Frame_C = Frame3(self) self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nswe") app = App() app.mainloop() اما بخصوص التعريب يمكنك استخدام الميثود pack كهذا المثال: self.button1.pack(side="right")
-
في المثال الذي ارسلته قمت بالتمرير من داخل class App مثل الكود الذي كان موجود: self.Frame_A = Frame1(self, "red", 3, "blue") و هذا الكود كامل اذا اردت تجربه: import customtkinter class Frame1(customtkinter.CTkFrame): def __init__(self, master, border_color, border_width, fg_color): super().__init__(master) self.configure(border_width=border_width,border_color=border_color,fg_color=fg_color) self.button1 = customtkinter.CTkButton(self, text="إختيار ملف", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold")) self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w") class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.checkbox_1 = customtkinter.CTkCheckBox(self, text="checkbox 1") self.checkbox_1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="w") class Frame3(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold")) self.button2.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="w") class App(customtkinter.CTk): def __init__(self): super().__init__() self.title("my app") self.geometry("400x180") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(0, weight=1) self.Frame_A = Frame1(self, "red", 3, "blue") self.Frame_A.grid(row=0, column=0, padx=1, pady=(1, 0), sticky="nswe") self.Frame_B = Frame2(self) self.Frame_B.grid(row=0, column=1, padx=1, pady=(1, 0), sticky="nswe") self.Frame_C = Frame3(self) self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nswe") app = App() app.mainloop()
-
يمكنك ذلك باستخدام الميثود configure و ذلك بإستخادم المدخلات الخاصة بك و هذا كود ال Frame1 معدل و يمكنك تعديل باقي الكود بنفس الطريقة: class Frame1(customtkinter.CTkFrame): def __init__(self, master, border_color, border_width, fg_color): super().__init__(master) self.configure(border_width=border_width,border_color=border_color,fg_color=fg_color) self.button1 = customtkinter.CTkButton(self, text="إختيار ملف", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold")) self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="w") و هذه صورة للنتيجة:
- 8 اجابة
-
- 1
-
-
يوجد العديد من الأسباب التي يمكن ان تكون السبب، أهمها ان تتأكد من الtoken الخاص بالبوت و انه مربوط مع الكود، إذهب الى botfather على تلغرام، و بعدها اختر البوت الخاص بك و سيتم ارسال ال api token اليك مرة أخرى قم بنسخة و وضعه في الكود الخاص بك. تأكد من خلال الكود الخاص بالبوت انه ليس مقيد لمستخدمين محددين فقط. حاول دائما ان تبدأ برمجة البوت بأوامر سهلة مع تجربتها لتتأكد انه شغال و هذا كود بسيط لبوت تلغرام: from telegram.ext import Updater, CommandHandler # استبدال "YOUR_TOKEN" بتوكن البوت الخاص بك TOKEN = "YOUR_TOKEN" def start(update, context): update.message.reply_text('مرحبًا بك في البوت!') def main(): # إعداد البوت باستخدام التوكن updater = Updater(TOKEN, use_context=True) # الحصول على مدير التحديثات dp = updater.dispatcher # إضافة معالج الأمر "/start" dp.add_handler(CommandHandler("start", start)) # بدء البوت updater.start_polling() # البقاء على البوت نشطًا حتى يتم الضغط على Ctrl-C updater.idle() if __name__ == '__main__': main() بعد التأكد انه شغال قم بإضافة الأوامر التي تريدها مع التعديل اللازم على الكود.
- 2 اجابة
-
- 1
-
-
يمكنك استخدام مكتبة node-notifier للتفاعل مع نظام الإشعارات في Node.js، و ايضا تستخدم react-toast-notifications أو مكتبة مماثلة في React لإظهار إشعارات في الواجهة الأمامية. اولا قم بتثبيت المكتبتين بالأمر التالي: npm install react-toast-notifications node-notifier و بعدها تكون البرمجة في الواجهة الخلفية بالطريقة التالية: const notifier = require('node-notifier'); // قم بتعيين وقت التنبيه الخاص بك const eventDate = new Date('2023-12-31T12:00:00'); // حساب الفارق بين الوقت الحالي ووقت الحدث const timeDiff = eventDate - new Date(); // قم بتعيين وقت للتنبيه قبل الحدث (مثلا: قبل ساعة) const alertTime = 60 * 60 * 1000; // ساعة واحدة // إذا كان الفارق بين الوقت الحالي ووقت الحدث أقل من وقت التنبيه، أرسل إشعار if (timeDiff > 0 && timeDiff <= alertTime) { notifier.notify({ title: 'تنبيه مهم', message: 'لديك موعد قريبًا!', // يمكنك إضافة المزيد من الخيارات هنا }); } و في الواجهة الأمامية استخدم react-toast-notifications من أجل اظهار الإشعارات: import { useToasts } from 'react-toast-notifications'; function MyComponent() { const { addToast } = useToasts(); // قم بإظهار إشعار عند تحميل المكون أو أثناء عملية الحفظ useEffect(() => { addToast('تم حفظ الموعد بنجاح!', { appearance: 'success' }); }, []); return ( <div> {/* محتوى المكون */} </div> ); } من المهم أن تتأكد من أن خادم Node.js يقوم بالتحقق من الأحداث بشكل دوري ويرسل إشعارات عندما يكون الوقت مناسب. كما يجب عليك التحقق من تكامل هذه الأكواد مع تطبيقك الكامل وتعديلها حسب احتياجاتك الخاصة.
- 1 جواب
-
- 1
-
-
مكتبة pandas تعطيك تحكم سلس في ملفات اكسل، يمكنك القيام بذلك من خلال الكود التالي: import pandas as pd # قراءة ملف Excel df = pd.read_excel('اسم_الملف.xlsx', header=None) # اختيار عمود واحد selected_column_1 = df.iloc[:, 0] # اختيار العمود الأول # اختيار عمودين selected_columns_2 = df.iloc[:, [1, 3]] # اختيار العمود الثاني والرابع # إنشاء DataFrame باستخدام العمود المحدد df_selected_1 = pd.DataFrame(selected_column_1, columns=['اسم_العمود_الأول']) df_selected_2 = pd.DataFrame(selected_columns_2, columns=['اسم_العمود_الثاني', 'اسم_العمود_الرابع']) # طباعة النتائج print(df_selected_1) print(df_selected_2)
- 4 اجابة
-
- 1
-
-
إذا كنت تريد استخدام الصفوف بشكل فردي (الصف 5، الصف 7، الصف 9)، يمكنك استخدام المؤشرات indexing لتحديد الصفوف التي تريدها. import pandas as pd # قراءة ملف Excel df = pd.read_excel('اسم_الملف.xlsx', header=None) # استخدام المؤشرات لاختيار الصفوف selected_rows = df.iloc[4::2] # إعادة تعيين مؤشرات الصفوف selected_rows.reset_index(drop=True, inplace=True) # طباعة النتيجة print(selected_rows) في المثال الذي أرفقته يقوم بقراءة الملف Excel، ثم يستخدم المؤشرات iloc لاختيار الصفوف بدءا من الصف 5 ومن ثم يختار كل صف ثاني (5، 7، 9، ..). يتم إعادة تعيين مؤشرات الصفوف لتبدأ من الصفر مرة أخرى باستخدام reset_index، في الأخير تحصل على DataFrame تحتوي على البيانات التي تريدها.
- 4 اجابة
-
- 1
-
-
يمكنك القيام بذلك ستحتاج أولا لإستدعاء الملف للحصول على أسماء أوراق العمل، بعدها تعرضها للمستخدم من أجل اختيار الورقة المناسبة، و في الأخير نجري التغييرات و نسجلها في الملف الجديد: import os from openpyxl import load_workbook import pandas as pd def display_sheet_names(file_path): # استدعاء الملف DB = load_workbook(file_path) # الحصول على أسماء أوراق العمل sheet_names = DB.sheetnames print("أسماء أوراق العمل:") for i, sheet_name in enumerate(sheet_names, start=1): print(f"{i}. {sheet_name}") # اختيار ورقة العمل sheet_choice = int(input("الرجاء اختيار رقم الورقة: ")) selected_sheet_name = sheet_names[sheet_choice - 1] return DB[selected_sheet_name] def main(): # إدخال اسم الملف file_name = input("الرجاء إدخال اسم الملف: ") file_path = os.path.join(os.getcwd(), file_name) # عرض أسماء أوراق العمل واختيار ورقة العمل DS = display_sheet_names(file_path) # تحويل بيانات ورقة العمل إلى DataFrame data = DS.values columns = [cell.value for cell in next(data)] df = pd.DataFrame(data, columns=columns) # يمكنك هنا إجراء العمليات التي تحتاجها على DataFrame # إنشاء ملف Excel جديد وحفظ DataFrame فيه new_file_name = input("الرجاء إدخال اسم ملف الحفظ: ") new_file_path = os.path.join(os.getcwd(), new_file_name) df.to_excel(new_file_path, index=False) print(f"تم حفظ البيانات في ملف {new_file_name}") if __name__ == "__main__": main()
- 5 اجابة
-
- 1
-
-
يمكنك القيام بذلك سواء بمكتبة openpyxl او pandas: بالطريقة التالية: from openpyxl import Workbook, load_workbook # استدعاء الملف وورقة العمل DB = load_workbook("اسم الملف.xlsx") DS = DB["اسم ورقة العمل"] # قم بتنفيذ العمليات التي تحتاج إليها على ورقة العمل # إنشاء ملف Excel جديد new_workbook = Workbook() new_sheet = new_workbook.active # نسخ البيانات من ورقة العمل الأصلية إلى ورقة العمل الجديدة for row in DS.iter_rows(values_only=True): new_sheet.append(row) # حفظ ملف Excel الجديد new_workbook.save("اسم ملف الحفظ.xlsx") اذا كنت تريد استخدام مكتبة pandas قم بالأمر التالي: import pandas as pd from openpyxl import load_workbook # استدعاء الملف وورقة العمل DB = load_workbook("اسم الملف.xlsx") DS = DB["اسم ورقة العمل"] # تحويل بيانات ورقة العمل إلى DataFrame data = DS.values columns = [cell.value for cell in next(data)] df = pd.DataFrame(data, columns=columns) # قم بتنفيذ العمليات التي تحتاج إليها على DataFrame # إنشاء ملف Excel جديد وحفظ DataFrame فيه df.to_excel("اسم ملف الحفظ.xlsx", index=False)
- 5 اجابة
-
- 1
-