Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
يدعم Aspose.Cells عرض بيانات المصفوفة في خلية واحدة عبر Smart Markers. من خلال استخدام سمة ArrayAsSingle مع سمة ExtraDelimiter، يمكن للمطورين التحكم في كيفية فصل عناصر المصفوفة داخل خلية واحدة، مما يوفر تنسيقًا مرنًا للتقارير والقوالب.
تُعد Smart Markers في Aspose.Cells ميزة قوية قائمة على القوالب تتيح لك تعبئة بيانات جدول البيانات ديناميكيًا باستخدام تعبيرات العلامات مثل &=DataSource.Field. توضع العلامة في مصنف المصمم، وعندما تتم معالجة القالب بواسطة WorkbookDesigner، تستبدل العلامات بقيم من مصدر البيانات المقدم.
افتراضيًا، عندما تشير علامة Smart Marker إلى خاصية مصفوفة (على سبيل المثال، &=DataSource.Numbers)، يقوم المحرك بتوسيع المصفوفة ووضع كل عنصر في خلية منفصلة مجاورة — إما أفقيًا عبر صف أو رأسيًا عبر عمود. على الرغم من أن هذا السلوك ملائم في العديد من السيناريوهات، إلا أن هناك حالات قد تفضل فيها عرض المصفوفة بأكملها في خلية واحدة، مع دمج العناصر وفصلها بمحدد من اختيارك.
تعالج سمتي ArrayAsSingle و ExtraDelimiter، المستخدمتين معًا داخل علامة Smart Marker، هذا المتطلب بالتحديد. تسمحان لك بالحفاظ على تخطيطات التقارير مضغوطة وقابلة للتنبؤ مع الاستمرار في العمل أصلاً مع مصادر بيانات المصفوفات.
عندما تشير علامة Smart Marker إلى خاصية مصفوفة، يقوم Aspose.Cells بتوسيع المصفوفة عبر خلايا متعددة بشكل افتراضي. على سبيل المثال، ستضع علامة مثل &=Product.Tags مقابل string[] تحتوي على أربع قيم كل قيمة في خلية خاصة بها، مما يدفع محتوى القالب الآخر للخارج ويحتمل أن يكسر تخطيطات التقارير المصممة بعناية.
توجد سيناريوهات عملية عديدة يكون فيها سلوك الانتشار الافتراضي غير مرغوب فيه:
بدون آلية مدمجة، سيُجبر المطورون على معالجة البيانات مسبقًا في C# أو VB.NET — دمج المصفوفات في سلاسل محددة قبل ربطها بمصمم المصنف. يؤدي ذلك إلى تكرار المنطق، وتعقيد نماذج البيانات، وزيادة فرص الأخطاء. تلغي سمتي ArrayAsSingle و ExtraDelimiter هذا الحل البديل من خلال معالجة التنسيق بشكل وصفي داخل علامة Smart Marker نفسها.
يوفر استخدام سمتي ArrayAsSingle و ExtraDelimiter في Smart Markers الخاصة بك العديد من المزايا:
يتم تمرير سمتي ArrayAsSingle و ExtraDelimiter كأزواج مفتاح-قيمة داخل أقواس علامة Smart Marker القياسية. الصيغة العامة هي:
&=DataSource.ArrayProperty(arrayasSingle=true, extraDelimiter=", ")
تتكون العلامة من الأجزاء التالية:
&=DataSource.ArrayProperty — علامة Smart Marker القياسية التي تشير إلى خاصية المصفوفة في مصدر البيانات المنضم.arrayasSingle=true — يوجه المحرك لعرض المصفوفة بأكملها في خلية واحدة. فقط القيمة true تؤدي إلى سلوك الخلية الواحدة.extraDelimiter=", " — يحدد الفاصل الموضوع بين عناصر المصفوفة. القيمة هي سلسلة حرفية؛ يمكن أن تكون فارغة، أو حرفًا واحدًا، أو سلسلة متعددة الأحرف.تقبل سمة extraDelimiter أي سلسلة حرفية، بما في ذلك المحددات متعددة الأحرف، أو النص المخصص، أو تسلسلات الهروب مثل \n للإخراج المفصول بأسطر جديدة. إذا كانت المصفوفة فارغة، تُترك الخلية الناتجة فارغة.
يصف سير العمل التالي كيفية عرض مصفوفة في خلية واحدة باستخدام Smart Markers.
string[]، أو int[]، أو أي نوع مصفوفة آخر مدعوم.Workbook جديدًا، وأضف صف رأس، وضع خلية Smart Marker تشير إلى خاصية المصفوفة مع سمتي arrayasSingle و extraDelimiter.WorkbookDesigner، وأرفق مصمم المصنف به، واربط مصدر البيانات باستخدام طريقة SetDataSource.WorkbookDesigner.Process() لتوسيع Smart Markers وتعبئة المصنف بالبيانات الفعلية.using System;
using Aspose.Cells;
class Program
{
public class Product
{
public string[] Tags { get; set; }
}
public static void Main()
{
Product product = new Product
{
Tags = new string[] { "C#", "Aspose", "SmartMarker", "Excel" }
};
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Cells["A1"].PutValue("Tags");
worksheet.Cells["A2"].PutValue("&=Product.Tags(arrayasSingle=true, extraDelimiter=\", \")");
WorkbookDesigner designer = new WorkbookDesigner();
designer.Workbook = workbook;
designer.SetDataSource("Product", product);
designer.Process();
workbook.Save("output_arraySingle.xlsx");
}
}
public class Student
{
public int[] Scores { get; set; }
}
public class Program
{
public static void Main()
{
var student = new Student
{
Scores = new int[] { 95, 88, 76, 100, 67 }
};
var workbook = new Workbook();
var worksheet = workbook.Worksheets[0];
worksheet.Cells["A1"].PutValue("Scores");
worksheet.Cells["A2"].PutValue(string.Join(" - ", student.Scores));
workbook.Save("output_numericArray.xlsx");
}
}
using System;
using Aspose.Cells;
public class Program
{
public static void Main()
{
var order = new Order
{
Items = new string[] { "Apple", "Banana", "Cherry", "Date" }
};
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
var cells = sheet.Cells;
// القسم 1: العلامة الذكية الافتراضية - القيم تنتشر أفقيًا عبر الخلايا
cells["A1"].PutValue("Default Spreading Behavior:");
cells["A2"].PutValue("&=Order.Items");
// القسم 2: العرض الجديد في خلية واحدة باستخدام arrayasSingle و extraDelimiter
cells["A4"].PutValue("Single Cell Rendering (arrayasSingle=true):");
cells["A5"].PutValue("&=Order.Items(arrayasSingle=true, extraDelimiter=\"; \")");
// ربط مصدر البيانات ومعالجة العلامات الذكية
var designer = new WorkbookDesigner(workbook);
designer.SetDataSource("Order", order);
designer.Process();
// حفظ المصنف الناتج
workbook.Save("output_comparison.xlsx");
}
}
public class Order
{
public string[] Items { get; set; }
}
ضع النقاط التالية في الاعتبار عند العمل مع سمتي ArrayAsSingle و ExtraDelimiter:
extraDelimiter كسلسلة حرفية؛ قم بإفلات أي أحرف خاصة قد يفسرها معالج القالب الخاص بك.arrayasSingle قيمة منطقية (true / false). فقط true تؤدي إلى سلوك الخلية الواحدة؛ أي قيمة أخرى تعود إلى سلوك الانتشار الافتراضي.DataSet و DataTable حيث يمكن تقسيم عمود إلى مصفوفات.\n أو Environment.NewLine كقيمة المحدد.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.