Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
يوفر Aspose.Cells طريقتين متميزتين لربط صورة بخلية واحدة. الصورة العائمة هي شكل على طبقة الرسم في ورقة العمل يغطي بصريًا نطاقًا من الخلايا، بينما تُخزَّن الصورة المضمنة داخل الخلية نفسها وتتدرج تلقائيًا لتناسب منطقة عرض الخلية. اختر الطريقة الأنسب لمتطلبات التخطيط لديك.
يُعدّ ضبط صورة بدقة لتناسب خلية واحدة مطلبًا شائعًا عند تصميم جداول بيانات تعمل كتقارير مرئية أو كتالوجات منتجات أو سجلات موظفين أو لوحات معلومات أو قوائم جرد. بدلًا من تمديد الصورة عبر عدة خلايا أو وضعها بشكل غير محكم على ورقة العمل، قد ترغب في صورة نظيفة مرتبطة بخلية تبقى محاذية مع الخلية المالكة لها. يدعم Aspose.Cells هذا السيناريو بطريقتين متكاملتين:
Picture إلى ورقة العمل، واضبط placement على MOVE_AND_SIZE، وعدّل خلايا الإرساء (upper_left_row، upper_left_column، lower_right_row، lower_right_column) بحيث تغطي الصورة خلية واحدة تمامًا.embedded_image للخلية. تتدرج الصورة تلقائيًا لتناسب منطقة عرض الخلية وتنتقل مع الخلية.
تتناول بقية هذه المقالة كلا النهجين، وتشرح واجهات برمجة التطبيقات ذات الصلة، وتوضح كيفية استخدامهما في الكود.الصورة العائمة هي كائن Picture يعيش على طبقة الرسم في ورقة العمل. وعلى الرغم من أنها ليست جزءًا من أي خلية واحدة، إلا أنها مُرتبطة بنطاق من الخلايا. تحدد خلايا الإرساء الخاصة بالصورة — زواياها العلوية اليسرى والسفلية اليمنى — نطاقها المرئي على ورقة العمل. افتراضيًا، تمتد الصورة المضافة حديثًا عبر عدة خلايا.
لجعل الصورة العائمة تغطي خلية واحدة بالضبط، يلزم:
Worksheet.pictures.add(row, column, stream)، مما يربط الصورة الجديدة بالخلية المحددة.Picture.placement على PlacementType.MOVE_AND_SIZE بحيث تتحرك الصورة وتعيد تحجيمها مع الخلية الأساسية عند قيام المستخدم بتغيير عرض العمود أو ارتفاع الصف.يُحدَّد إرساء الصورة بأربع خصائص ذات فهرس يبدأ من الصفر:
Picture.upper_left_row — فهرس الصف للحافة العلوية للصورة.Picture.upper_left_column — فهرس العمود للحافة اليسرى للصورة.Picture.lower_right_row — فهرس الصف للحافة السفلية للصورة. لجعل الحافة السفلية للصورة تقع في أسفل الصف r، اضبط هذه القيمة على r + 1.Picture.lower_right_column — فهرس العمود للحافة اليمنى للصورة. لجعل الحافة اليمنى للصورة تقع في يمين العمود c، اضبط هذه القيمة على c + 1.فهارس الصفوف والأعمدة في Aspose.Cells تبدأ من الصفر. الخلية C6 لها فهرس صف 5 وفهرس عمود 2. تُعدّ أخطاء الانحراف بمقدار واحد في إرساء الزاوية السفلية اليمنى السبب الأكثر شيوعًا لظهور صور تبدو متداخلة مع خلية مجاورة.
Picture.placement هو تعداد من نوع PlacementType يتحكم في كيفية تصرف الصورة عند قيام المستخدم بإعادة تحجيم الصف أو العمود الذي تحته. القيمة الموصى بها لصورة خلية واحدة هي PlacementType.MOVE_AND_SIZE، والتي تتسبب في تحرك الصورة وإعادة تحجيمها مع الخلية الأساسية الخاصة بها، محافظةً على التوافق الدقيق.
Workbook جديدًا (أو افتح ملفًا موجودًا).Worksheet المستهدفة من workbook.worksheets[0].BytesIO) باستخدام كتلة with ليتم التخلص من التدفق بشكل صحيح.worksheet.pictures.add(5, 2, stream) لإضافة صورة مرتبطة بالخلية C6. التقط مرجع Picture المُعاد.upper_left_row = 5، upper_left_column = 2، lower_right_row = 6، lower_right_column = 3.picture.placement = PlacementType.MOVE_AND_SIZE للحفاظ على محاذاة الصورة مع C6 عند إعادة تحجيم العمود أو الصف..xlsx.
يوضح الكود التالي النهج الكامل.import aspose.cells as ac
workbook = ac.Workbook()
worksheet = workbook.worksheets[0]
with open("logo.png", "rb") as fs:
pic_index = worksheet.pictures.add(5, 2, fs)
picture = worksheet.pictures[pic_index]
picture.upper_left_row = 5
picture.upper_left_column = 2
picture.lower_right_row = 6
picture.lower_right_column = 3
picture.placement = ac.PlacementType.MOVE_AND_SIZE
workbook.save("output.xlsx", ac.SaveFormat.XLSX)
يوفر Aspose.Cells أيضًا آلية أبسط للصور المرتبطة بالخلايا: خاصية Cell.embedded_image. يخصص تعيين وحدات بايت الصورة لهذه الخاصةية الصورة للخلية نفسها، كما لو كانت محتوى مضمّنًا.
Cell.embedded_image الخيار الأكثر إيجازًا عندما يكون هدفك ببساطة “صورة تعيش داخل هذه الخلية”.Workbook جديدًا (أو افتح ملفًا موجودًا).Worksheet المستهدفة من workbook.worksheets[0].bytes (على سبيل المثال، بفتح الملف في الوضع الثنائي واستدعاء .read()).worksheet.cells["C6"] أو worksheet.cells[5, 2].embedded_image للخلية..xlsx.
يوضح الكود التالي النهج الكامل.import aspose.cells as ac
workbook = ac.Workbook()
worksheet = workbook.worksheets[0]
# Get the target cell C6
cell = worksheet.cells["C6"]
# Read the image file into a byte array
with open("logo.png", "rb") as f:
imageData = f.read()
# Embed the image directly into the cell
cell.embedded_image = imageData
# Optionally adjust row height and column width so the embedded image is more visible
worksheet.cells.set_column_width(2, 30) # Column C (index 2)
worksheet.cells.set_row_height(5, 100) # Row 6 (index 5)
# Save the resulting workbook as an .xlsx file
workbook.save("output.xlsx", ac.SaveFormat.XLSX)
يُنتج كلا النهجين صورة تناسب خلية واحدة، لكنهما يختلفان في كيفية تخزين الصورة وكيفية تصرفها:
pictures.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.