Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
ArrayAsSingle جنبًا إلى جنب مع سمة ExtraDelimiter، يمكن للمطورين التحكم في كيفية فصل عناصر المصفوفة داخل خلية واحدة، مما يوفر تنسيقًا مرنًا للتقارير والقوالب.
تعد العلامات الذكية في Aspose.Cells ميزة قوية قائمة على القوالب تتيح لك تعبئة بيانات جداول البيانات ديناميكيًا باستخدام تعبيرات العلامات مثل &=DataSource.Field. يتم وضع العلامة في مصنف المصمم، وعندما تتم معالجة القالب بواسطة WorkbookDesigner، يتم استبدال العلامات بقيم من مصدر البيانات المقدم.
افتراضيًا، عندما تشير علامة ذكية إلى خاصية مصفوفة (على سبيل المثال، &=DataSource.Numbers)، يوسع المحرك المصفوفة ويضع كل عنصر في خلية منفصلة متجاورة — إما أفقيًا عبر صف أو رأسيًا أسفل عمود. بينما يكون هذا السلوك ملائمًا في العديد من السيناريوهات، هناك مواقف قد تفضل فيها عرض المصفوفة بأكملها في خلية واحدة، مع تسلسل العناصر وفصلها بواسطة محدد من اختيارك.
تعالج سمتا ArrayAsSingle و ExtraDelimiter، المستخدمتين معًا داخل علامة ذكية، هذا المتطلب بالتحديد. تسمحان لك بالحفاظ على تخطيطات التقارير مضغوطة ويمكن التنبؤ بها مع العمل أصلاً مع مصادر بيانات المصفوفات.
عندما تشير علامة ذكية إلى خاصية مصفوفة، يوسع Aspose.Cells المصفوفة عبر خلايا متعددة افتراضيًا. على سبيل المثال، ستضع علامة مثل &=Product.Tags ضد string[] تحتوي على أربع قيم، كل قيمة في خليتها الخاصة، مما يدفع محتوى القالب الآخر إلى الخارج ويحتمل أن يكسر تخطيطات التقارير المصممة بعناية.
توجد العديد من السيناريوهات العملية التي يكون فيها سلوك الانتشار الافتراضي غير مرغوب فيه:
بدون آلية مدمجة، سيُجبر المطورون على معالجة البيانات مسبقًا في Java — دمج المصفوفات في سلاسل مفصولة بمحدد قبل ربطها بمصمم المصنف. يضاعف هذا المنطق، ويعقد نماذج البيانات، ويزيد من فرصة الأخطاء. تلغي سمتا ArrayAsSingle و ExtraDelimiter هذا الحل البديل من خلال التعامل مع التنسيق بشكل تصريحي داخل العلامة الذكية نفسها.
يوفر استخدام سمتي ArrayAsSingle و ExtraDelimiter في العلامات الذكية الخاصة بك العديد من المزايا:
يتم تمرير سمتي ArrayAsSingle و ExtraDelimiter كأزواج قيمة-مفتاح داخل أقواس العلامة الذكية القياسية. الصيغة العامة هي:
&=DataSource.ArrayProperty(arrayasSingle=true, extraDelimiter=", ")
تتكون العلامة من الأجزاء التالية:
&=DataSource.ArrayProperty — العلامة الذكية القياسية التي تشير إلى خاصية المصفوفة على مصدر البيانات المنضم.arrayasSingle=true — يوجه المحرك لعرض المصفوفة بأكملها في خلية واحدة. فقط القيمة true تؤدي إلى سلوك الخلية الواحدة.extraDelimiter=", " — يحدد الفاصل الموضوع بين عناصر المصفوفة. القيمة هي سلسلة حرفية؛ يمكن أن تكون فارغة أو حرفًا واحدًا أو سلسلة متعددة الأحرف.extraDelimiter أي سلسلة حرفية، بما في ذلك المحددات متعددة الأحرف، أو النص المخصص، أو تسلسلات الهروب مثل \n للإخراج المفصول بسطر جديد. إذا كانت المصفوفة فارغة، فستترك الخلية الناتجة فارغة.
يصف سير العمل التالي كيفية عرض مصفوفة في خلية واحدة باستخدام العلامات الذكية.
String[]، أو int[]، أو أي نوع مصفوفة مدعوم آخر.Workbook جديدًا، وأضف صف رأس، وضع خلية علامة ذكية تشير إلى خاصية المصفوفة بسمتي arrayasSingle و extraDelimiter.WorkbookDesigner، وأرفق مصنف المصمم به، واربط مصدر البيانات الخاص بك باستخدام طريقة setDataSource.WorkbookDesigner.process() لتوسيع العلامات الذكية وتعبئة المصنف بالبيانات الحقيقية.import com.aspose.cells.*;
class Product {
public String[] Tags;
}
public class CodeRunner {
public static void main(String[] args) throws Exception {
Product product = new Product();
product.Tags = new String[] { "C#", "Aspose", "SmartMarker", "Excel" };
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getCells().get("A1").putValue("Tags");
worksheet.getCells().get("A2").putValue("&=Product.Tags(arrayasSingle=true, extraDelimiter=\", \")");
WorkbookDesigner designer = new WorkbookDesigner();
designer.setWorkbook(workbook);
designer.setDataSource("Product", product);
designer.process();
workbook.save("output_arraySingle.xlsx");
}
}
import com.aspose.cells.*;
class Student
{
public int[] Scores;
}
public class CodeRunner
{
public static void main(String[] args) throws Exception
{
Student student = new Student();
student.Scores = new int[] { 95, 88, 76, 100, 67 };
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getCells().get("A1").putValue("Scores");
StringBuilder joined = new StringBuilder();
for (int i = 0; i < student.Scores.length; i++)
{
if (i > 0) joined.append(" - ");
joined.append(student.Scores[i]);
}
worksheet.getCells().get("A2").putValue(joined.toString());
workbook.save("output_numericArray.xlsx");
}
}
class Order
{
private String[] items;
public String[] getItems()
{
return items;
}
public void setItems(String[] items)
{
this.items = items;
}
}
ضع النقاط التالية في اعتبارك عند العمل مع سمتي ArrayAsSingle و ExtraDelimiter:
extraDelimiter كسلسلة حرفية؛ قم بإفلات أي أحرف خاصة قد يفسرها معالج القالب الخاص بك.arrayasSingle قيمة منطقية (true / false). فقط true يؤدي إلى سلوك الخلية الواحدة؛ أي قيمة أخرى تعود إلى سلوك الانتشار الافتراضي.DataSet و DataTable حيث يمكن تقسيم عمود إلى مصفوفات.\n أو System.lineSeparator() كقيمة المحدد.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.