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

السؤال

نشر

السلام عليكم ورحمة الله وبركاته

سؤال وأرجو التوضيح عليه ولو بشيء مبسط

سؤال كالتالي:

لقد قمت بإنشاء ملف إكسيل من خلال DataFrame ولقد استخدمت مكتبة pandas في هذا

أحتاج إلى كود يقوم بتنسيق شكل الأعمدة كا حجم العمود ولون الخلايا وهكذا مثلاً

أعلم أن مكتبة openpyxl مرنة أكثر في التنسيق 

هل يمكن القيام بذلك من خلال مكتبة pandas إذا كان الجواب لا

كيف أقوم بربط pandas مع openpyxl أي مثلا كيف أتعامل مع اسم ورقة العمل تم جلبها بمكتبة pandas لأشاركها مع مكتبة openpyxl لأقوم بالتنسيق عليها

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته،

هذا سؤال جيد، سأعطيك بعض الإرشادات التي تساعدك في مهمتك، وكذلك تنمية مهارات التعلم الذاتي،

1- قم بقراءة ملف الإكسيل بواسطة مكتبة pandas ووضعه داخل DataFram

2- قم بإنشاء كائن باستخدام مكتبة openpyxl

# إنشاء كائن ExcelWriter باستخدام محرك openpyxl
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')

مع تعديل اسم الملف

3- قم بقراءة workbook, worksheet من الكائن writer

4- قم بعمل التنسيقات المطلوبة

5- قم بحفظ الكائن writer

 

  • 0
نشر (معدل)
بتاريخ 14 دقائق مضت قال El Sayed El Tohamy:

وعليكم السلام ورحمة الله وبركاته،

هذا سؤال جيد، سأعطيك بعض الإرشادات التي تساعدك في مهمتك، وكذلك تنمية مهارات التعلم الذاتي،

1- قم بقراءة ملف الإكسيل بواسطة مكتبة pandas ووضعه داخل DataFram

2- قم بإنشاء كائن باستخدام مكتبة openpyxl

# إنشاء كائن ExcelWriter باستخدام محرك openpyxl
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')

مع تعديل اسم الملف

3- قم بقراءة workbook, worksheet من الكائن writer

4- قم بعمل التنسيقات المطلوبة

5- قم بحفظ الكائن writer

 

أستاذي لم أفهم الفكرة جيداً

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

self.DF.to_excel("SAVE1.xlsx",index=False)

والذي يقوم بعملية الحفظ باستخدام

أريد إدخال openpyxl على الكود للقيام بتنسيق الجدول

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

 

تم التعديل في بواسطة Ahmed Ahmed64
  • 0
نشر (معدل)
بتاريخ 12 دقائق مضت قال El Sayed El Tohamy:

من الواضح أنك أنجزت الخطوة الأولى وهي الحصول على DataFrame اسمه DF

إذن تحتاج لتنفيذ الخطوة الثانية مع تغيير الاسم 'test.xlsx' إلى الاسم المناسب.

ولاحظ أننا في النهاية سنقوم بالحفظ عن طريق الكائن writer وليس DF

أسف على الأطالة أستاذي ولاكن إختلط علي الأمر

توضيح أكثر

أستاذي لم أفهم الفكرة جيداً

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

self.DF.to_excel("SAVE1.xlsx",index=False)

والذي يقوم بعملية الحفظ باستخدام

أريد إدخال openpyxl على الكود للقيام بتنسيق الجدول

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

هل تقصد الحفظ هكذا

self.DF  = pd.ExcelWriter('test.xlsx', engine='openpyxl')

إذا كان هكذا فعند فتح ملف الإكسيل تظهر رسالة بأن الملف تالف

تم التعديل في بواسطة Ahmed Ahmed64
  • 0
نشر

إليك بعض الشيفرات التي تساعدك في إنجاز مهتمك

# استيراد المكتبات اللازمة
import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment


# إنشاء كائن ExcelWriter باستخدام محرك openpyxl
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')

# حفظ DataFrame كملف إكسيل باستخدام الكائن ExcelWriter
DF.to_excel(writer, sheet_name='Sheet1', index=False)

# الحصول على كائن workbook من الكائن ExcelWriter
wb = writer.book

# الحصول على كائن worksheet من الكائن workbook
ws = wb['Sheet1']

data_font = Font(size=10, color='000000')

for row in ws.iter_rows():
  for cell in row:
    cell.font = data_font


# حفظ الكائن ExcelWriter لتطبيق التغييرات على الملف
writer.save()

لاحظ أننا أنشأنا كائن writer ثم قمنا بحفظ بيانات DF في ملف إكسيل جديد، ثم حصلنا على كائن workbook أسميناه wb، ثم أنشأنا كائن ws، ثم بدأنا في تطبيق التصميم المطلوب، وبالآخر الحفظ باستخدام writer

 

  • 0
نشر
بتاريخ 19 دقائق مضت قال El Sayed El Tohamy:

إليك بعض الشيفرات التي تساعدك في إنجاز مهتمك

# استيراد المكتبات اللازمة
import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment


# إنشاء كائن ExcelWriter باستخدام محرك openpyxl
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')

# حفظ DataFrame كملف إكسيل باستخدام الكائن ExcelWriter
DF.to_excel(writer, sheet_name='Sheet1', index=False)

# الحصول على كائن workbook من الكائن ExcelWriter
wb = writer.book

# الحصول على كائن worksheet من الكائن workbook
ws = wb['Sheet1']

data_font = Font(size=10, color='000000')

for row in ws.iter_rows():
  for cell in row:
    cell.font = data_font


# حفظ الكائن ExcelWriter لتطبيق التغييرات على الملف
writer.save()

لاحظ أننا أنشأنا كائن writer ثم قمنا بحفظ بيانات DF في ملف إكسيل جديد، ثم حصلنا على كائن workbook أسميناه wb، ثم أنشأنا كائن ws، ثم بدأنا في تطبيق التصميم المطلوب، وبالآخر الحفظ باستخدام writer

 

أستاذي لدي هذه الشفرة كيف أقوم بالأمر عليها لكي يتضح لي شرحك أكثر فا أكثر وأسف على الإطالة 

import pandas as pd
from openpyxl import load_workbook

df = pd.read_excel('test.xlsx',sheet_name="sh1",header=None, engine='openpyxl')
data = {'الإسم الأول': df.iloc[1::, 0] ,'إسم الأب': df.iloc[1::, 1],'أسم العائلة': df.iloc[1::, 2]}
df = pd.DataFrame.from_dict(data)

df.to_excel("op1.xlsx",index=False)

 

هل الشفرة تكون بهذه الكيفية 

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment

df = pd.read_excel('test.xlsx',sheet_name="sh1",header=None, engine='openpyxl')
data = {'الإسم الأول': df.iloc[1::, 0] ,'إسم الأب': df.iloc[1::, 1],'أسم العائلة': df.iloc[1::, 2]}
df = pd.DataFrame.from_dict(data)
writer = pd.ExcelWriter('test2.xlsx', engine='openpyxl')
df.to_excel(writer, sheet_name='Sheet1', index=False)
wb = writer.book
ws = wb['Sheet1']
data_font = Font(size=10, color='000000')

for row in ws.iter_rows():
  for cell in row:
    cell.font = data_font
writer.save()

 

  • 0
نشر
بتاريخ 36 دقائق مضت قال Ahmed Ahmed64:

أستاذي لدي هذه الشفرة كيف أقوم بالأمر عليها لكي يتضح لي شرحك أكثر فا أكثر وأسف على الإطالة 

احذف السطر الأخير واكتب الشيفرات التي أرسلتها لك بدلاً منه مع استبدال DF بالاسم الموجود لديك وهو df

import pandas as pd
from openpyxl import load_workbook

df = pd.read_excel('test.xlsx',sheet_name="sh1",header=None, engine='openpyxl')
data = {'الإسم الأول': df.iloc[1::, 0] ,'إسم الأب': df.iloc[1::, 1],'أسم العائلة': df.iloc[1::, 2]}
df = pd.DataFrame.from_dict(data)

# df.to_excel("op1.xlsx",index=False)
# اكتب الشيفرات هنا ولا تنس استيراد المكتبات

 

  • 0
نشر
بتاريخ 2 دقائق مضت قال El Sayed El Tohamy:

احذف السطر الأخير واكتب الشيفرات التي أرسلتها لك بدلاً منه مع استبدال DF بالاسم الموجود لديك وهو df

import pandas as pd
from openpyxl import load_workbook

df = pd.read_excel('test.xlsx',sheet_name="sh1",header=None, engine='openpyxl')
data = {'الإسم الأول': df.iloc[1::, 0] ,'إسم الأب': df.iloc[1::, 1],'أسم العائلة': df.iloc[1::, 2]}
df = pd.DataFrame.from_dict(data)

# df.to_excel("op1.xlsx",index=False)
# اكتب الشيفرات هنا ولا تنس استيراد المكتبات

 

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

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill, Border, Side, Alignment

df = pd.read_excel('test.xlsx',sheet_name="sh1",header=None, engine='openpyxl')
data = {'الإسم الأول': df.iloc[1::, 0] ,'إسم الأب': df.iloc[1::, 1],'أسم العائلة': df.iloc[1::, 2]}
df = pd.DataFrame.from_dict(data)
writer = pd.ExcelWriter('test2.xlsx', engine='openpyxl')
df.to_excel(writer, sheet_name='Sheet1', index=False)
wb = writer.book
ws = wb['Sheet1']
data_font = Font(size=10, color='000000')

for row in ws.iter_rows():
  for cell in row:
    cell.font = data_font
writer.save()

 

  • 0
نشر
بتاريخ 4 دقائق مضت قال El Sayed El Tohamy:

أحييك على مجهودك وصبرك، وهذا هو حال تطوير البرمجيات يحتاج صبرًا هائلًا،

هل الشيفرات تعمل أم تعطي لديك خطأً؟

نعم لدي خطأ فيما يخص أخر سطر 

AttributeError: 'OpenpyxlWriter' object has no attribute 'save'. Did you mean: '_save'?

  • 0
نشر (معدل)
بتاريخ 36 دقائق مضت قال El Sayed El Tohamy:

يبدو أنك تستخدم إصدارًا قديمًا من مكتبة pandas، قم بتحديثها، أو يمكنك استخدام أمر الإغلاق بدلاً من الحفظ

writer.close()

 

شكرا جزيلا على لطفك ودعمك ,,, أشكرك كل الشكر

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

في برنامج Microsoft Office Excel هناك خيار داخل تبويب تخطيط الصفحة خاص بقلب ورقة العمل من اليمين لليسار

كيف أنفذ هذا باستخدام مكتبة Openpyxl

 

تم التعديل في بواسطة Ahmed Ahmed64
  • 0
نشر
بتاريخ 49 دقائق مضت قال Ahmed Ahmed64:

في برنامج Microsoft Office Excel هناك خيار داخل تبويب تخطيط الصفحة خاص بقلب ورقة العمل من اليمين لليسار

كيف أنفذ هذا باستخدام مكتبة Openpyxl

هل بحثت عن

using Openpyxl, change excel direction from left to right

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...