Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
يدعم Aspose.Cells عرض بيانات المصفوفة في خلية واحدة عبر العلامات الذكية. من خلال استخدام سمة ArrayAsSingle مع سمة ExtraDelimiter، يمكن للمطورين التحكم في كيفية فصل عناصر المصفوفة داخل خلية واحدة، مما يوفر تنسيقًا مرنًا للتقارير والقوالب.
تعد العلامات الذكية في Aspose.Cells ميزة قوية قائمة على القوالب تتيح لك تعبئة بيانات جداول البيانات ديناميكيًا باستخدام تعبيرات العلامات مثل &=DataSource.Field. توضع العلامة في مصنف المصمم، وعندما يقوم WorkbookDesigner بمعالجة القالب، يتم استبدال العلامات بقيم من مصدر البيانات المقدم.
افتراضيًا، عندما تشير علامة ذكية إلى خاصية مصفوفة (على سبيل المثال، &=DataSource.Numbers)، يقوم المحرك بتوسيع المصفوفة ويضع كل عنصر في خلية منفصلة متجاورة — سواء أفقيًا عبر صف أو عموديًا لأسفل عمود. في حين أن هذا السلوك مناسب في العديد من السيناريوهات، إلا أن هناك مواقف قد تفضل فيها عرض المصفوفة بأكملها في خلية واحدة، مع دمج العناصر وفصلها بفاصل من اختيارك.
تعالج سمتا ArrayAsSingle وExtraDelimiter، المستخدمتان معًا داخل وسم علامة ذكية، هذا المتطلب بالتحديد. تسمحان لك بالحفاظ على تخطيطات التقارير مدمجة ويمكن التنبؤ بها مع الاستمرار في العمل بشكل أصلي مع مصادر بيانات المصفوفات.
عندما تشير علامة ذكية إلى خاصية مصفوفة، يقوم Aspose.Cells بتوسيع المصفوفة عبر خلايا متعددة افتراضيًا. على سبيل المثال، ستضع علامة مثل &=Product.Tags مقابل string[] يحتوي على أربع قيم كل قيمة في خليتها الخاصة، مما يدفع محتوى القالب الآخر إلى الخارج ويحتمل أن يكسر تخطيطات التقارير المصممة بعناية.
هناك العديد من السيناريوهات العملية التي يكون فيها سلوك الانتشار الافتراضي غير مرغوب فيه:
بدون آلية مدمجة، سيُجبر المطورون على معالجة البيانات مسبقًا في Python — دمج المصفوفات في سلاسل نصية مفصولة قبل ربطها بمصمم المصنف. يؤدي هذا إلى تكرار المنطق، وتعقيد نماذج البيانات، وزيادة احتمال الأخطاء. تلغي سمتا ArrayAsSingle وExtraDelimiter هذا الحل البديل من خلال معالجة التنسيق بشكل وصفي داخل العلامة الذكية نفسها.
يوفر استخدام سمتي ArrayAsSingle وExtraDelimiter في العلامات الذكية العديد من المزايا:
يتم تمرير سمتي ArrayAsSingle وExtraDelimiter كأزواج مفتاح-قيمة داخل أقواس علامة ذكية قياسية. الصيغة العامة هي:
&=DataSource.ArrayProperty(arrayasSingle=true, extraDelimiter=", ")
تتكون العلامة من الأجزاء التالية:
&=DataSource.ArrayProperty — العلامة الذكية القياسية التي تشير إلى خاصية المصفوفة في مصدر البيانات المرتبط.arrayasSingle=true — يوجه المحرك لعرض المصفوفة بأكملها في خلية واحدة. فقط القيمة true تؤدي إلى سلوك الخلية الواحدة.extraDelimiter=", " — يحدد الفاصل الموضوع بين عناصر المصفوفة. القيمة هي سلسلة حرفية؛ يمكن أن تكون فارغة أو حرفًا واحدًا أو سلسلة متعددة الأحرف.تقبل سمة extraDelimiter أي سلسلة حرفية، بما في ذلك الفواصل متعددة الأحرف أو النص المخصص أو تسلسلات الهروب مثل \n للإخراج المفصول بسطر جديد. إذا كانت المصفوفة فارغة، تُترك الخلية الناتجة فارغة.
يصف سير العمل التالي كيفية عرض مصفوفة في خلية واحدة باستخدام العلامات الذكية.
list[str] أو list[int] أو أي نوع مصفوفة مدعوم آخر.Workbook جديدًا، وأضف صف ترويسة، وضع خلية علامة ذكية تشير إلى خاصية المصفوفة مع سمتي arrayasSingle وextraDelimiter.WorkbookDesigner، واربط مصنف المصمم به، واربط مصدر البيانات الخاص بك باستخدام طريقة set_data_source.WorkbookDesigner.process() لتوسيع العلامات الذكية وتعبئة المصنف ببيانات حقيقية.class Product:
def __init__(self):
self.Tags = []
product = Product()
product.Tags = ["C#", "Aspose", "SmartMarker", "Excel"]
workbook = ac.Workbook()
worksheet = workbook.worksheets[0]
worksheet.cells["A1"].put_value("Tags")
worksheet.cells["A2"].put_value("&=Product.Tags(arrayasSingle=true, extraDelimiter=\", \")")
designer = ac.WorkbookDesigner()
designer.workbook = workbook
designer.set_data_source("Product", product)
designer.process()
workbook.save("output_arraySingle.xlsx")
class Student:
def __init__(self):
self.scores = []
student = Student()
student.scores = [95, 88, 76, 100, 67]
workbook = ac.Workbook()
worksheet = workbook.worksheets[0]
worksheet.cells["A1"].put_value("Scores")
worksheet.cells["A2"].put_value(" - ".join(str(s) for s in student.scores))
workbook.save("output_numericArray.xlsx")
class Order:
def __init__(self, items):
self._items = items
@property
def Items(self):
return self._items
@Items.setter
def Items(self, value):
self._items = value
order = Order(["Apple", "Banana", "Cherry", "Date"])
workbook = ac.Workbook()
sheet = workbook.worksheets[0]
cells = sheet.cells
# القسم 1: العلامة الذكية الافتراضية - القيم تنتشر أفقيًا عبر الخلايا
cells["A1"].put_value("Default Spreading Behavior:")
cells["A2"].put_value("&=Order.Items")
# القسم 2: عرض الخلية الواحدة الجديد باستخدام arrayasSingle و extraDelimiter
cells["A4"].put_value("Single Cell Rendering (arrayasSingle=true):")
cells["A5"].put_value('&=Order.Items(arrayasSingle=true, extraDelimiter="; ")')
# ربط مصدر البيانات ومعالجة العلامات الذكية
designer = ac.WorkbookDesigner(workbook)
designer.set_data_source("Order", order)
designer.process()
# حفظ المصنف الناتج
workbook.save("output_comparison.xlsx")
ضع النقاط التالية في اعتبارك عند العمل مع سمتي ArrayAsSingle وExtraDelimiter:
extraDelimiter كسلسلة حرفية؛ قم بإفلات أي أحرف خاصة قد يفسرها معالج القالب الخاص بك.arrayasSingle قيمة منطقية (True / False). فقط True تؤدي إلى سلوك الخلية الواحدة؛ أي قيمة أخرى تعود إلى سلوك الانتشار الافتراضي.DataSet وDataTable حيث يمكن تقسيم عمود إلى مصفوفات.\n أو os.linesep كقيمة فاصل.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.