Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
يصعب قراءة جدول محوري يسرد كل عنصر في حقل صف إذا احتوى الحقل على عشرات العناصر. يحتفظ تقرير «أفضل 10» بالعناصر الأعلى أو الأدنى ترتيبًا فقط، وهو ما تحتاجه تقارير الترتيب تحديدًا، مثل «أفضل 5 منتجات حسب الإيرادات» أو «أسفل 3 مناطق حسب عدد المبيعات». يدعم Aspose.Cells آليتين لذلك، تقابلان جيلين من Microsoft Excel.
PivotField.top10AutoShow(). هذا هو الإعداد الكلاسيكي «عرض أفضل N عناصر أو أسفل N عناصر» المخزن مباشرةً على حقل الجدول المحوري. يعمل في جميع إصدارات Excel، القديمة والجديدة، لأنه جزء من تنسيق الجدول المحوري الأصلي.PivotField.filterTop10(). هذا هو مرشح القيمة الحديث لأفضل 10 الموجود ضمن مرشحات القيم في قائمة الحقل. يُخزَّن في صورة كائن PivotFilter مرتبط بالحقل، ويتيح الترتيب استنادًا إلى عدد العناصر أو نسبتها المئوية.يُهيَّأ العرض التلقائي الكلاسيكي باستدعاء واحد للطريقة PivotField.top10AutoShow(boolean isAutoShow, boolean isTop, int count, int rankBy):
isAutoShow — يتيح إعداد العرض التلقائي على الحقل أو يعطله.isTop — إذا كان true، يتم الاحتفاظ بالعناصر الأعلى ترتيبًا (الأعلى)، وإذا كان false، يتم الاحتفاظ بالعناصر الأدنى (الأسفل).count — عدد العناصر التي يجب الاحتفاظ بها، مثل 10 لتقرير كلاسيكي لأفضل 10.rankBy — الفهرس بدءًا من الصفر لحقل البيانات الذي تُرتَّب العناصر وفق قيمه. مرّر -1 لترتيب العناصر وفق الحقل نفسه.
يمكن أن يستند الترتيب إلى حقل قيمة أو إلى الحقل نفسه. توجد حالتان طبيعيتان، يوضحهما المثالان التاليان.رتّب عناصر حقل الصف وفق حقل قيمة عادي مثل “Sum of Sales”. يبني المثال التالي جدولًا محوريًا فيه حقل صف واحد (Sport) وحقل بيانات واحد (Sales)، ثم يعرض أفضل رياضتين من حيث المبيعات. قيمة rankBy هي 0 لأن “Sum of Sales” هو حقل البيانات الموجود عند الفهرس 0.
import com.aspose.cells.*;
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getCells().get("A1").putValue("Sport");
worksheet.getCells().get("B1").putValue("Quarter");
worksheet.getCells().get("C1").putValue("Sales");
String[] sports = { "Golf", "Tennis", "Rugby", "Cricket", "Boxing" };
int row = 2;
for (String sport : sports)
{
for (int quarter = 1; quarter <= 3; quarter++)
{
worksheet.getCells().get(row, 0).putValue(sport);
worksheet.getCells().get(row, 1).putValue("Qtr" + quarter);
worksheet.getCells().get(row, 2).putValue(1000 + 777 * row);
row++;
}
}
PivotTable pivotTable = worksheet.getPivotTables().add("A1:C16", 2, 5);
pivotTable.addFieldToArea(PivotFieldType.ROW, "Sport");
pivotTable.addFieldToArea(PivotFieldType.DATA, "Sales");
pivotTable.calculateData();
PivotField sportField = pivotTable.getRowFields().get(0);
// إظهار أفضل عنصرين مصنفين حسب "Sum of Sales" (فهرس حقل البيانات 0)
sportField.top10AutoShow(true, true, 2, 0);
pivotTable.calculateData();
workbook.save("output-top10-by-value-field.xlsx");
يمكن ترتيب الحقل وفق نفسه أيضًا — مرر -1 كقيمة لـ rankBy. لا يتطلب هذا الأسلوب حقل بيانات إضافيًا؛ يكفي أن يوضع الحقل في منطقة الصفوف (أو الأعمدة). يوضح المثال التالي أدنى 3 رياضات مرتبة وفق الحقل نفسه. عند حفظ هذا الإعداد، لا تُدرج سمة rankBy في XML للجدول المحوري لأن -1 هي القيمة الافتراضية للتنسيق، وتعيد Top10AutoShowSettings.getRankBy() إرجاع القيمة -1.
import com.aspose.cells.*;
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getCells().get("A1").putValue("Sport");
worksheet.getCells().get("B1").putValue("Quarter");
worksheet.getCells().get("C1").putValue("Sales");
String[] sports = { "Golf", "Tennis", "Rugby", "Cricket", "Boxing" };
int row = 2;
for (String sport : sports)
{
for (int quarter = 1; quarter <= 3; quarter++)
{
worksheet.getCells().get(row, 0).putValue(sport);
worksheet.getCells().get(row, 1).putValue("Qtr" + quarter);
worksheet.getCells().get(row, 2).putValue(1000 + 777 * row);
row++;
}
}
PivotTable pivotTable = worksheet.getPivotTables().add("A1:C16", 2, 5);
pivotTable.addFieldToArea(PivotFieldType.ROW, "Sport");
pivotTable.addFieldToArea(PivotFieldType.DATA, "Sales");
pivotTable.calculateData();
PivotField sportField = pivotTable.getRowFields().get(0);
// عرض آخر 3 عناصر مرتبة حسب الحقل نفسه (rankBy = -1)
sportField.top10AutoShow(true, false, 3, -1);
pivotTable.calculateData();
workbook.save("output-top10-by-field-itself.xlsx");
تعيد الطريقة PivotField.getTop10AutoShowSettings() كائن PivotFieldTop10AutoShowSettings يتيح الوصول إلى خيارات العرض التلقائي المخزنة حاليًا على الحقل. استخدمه للاطلاع على كيفية عرض العناصر في مصنف موجود، أو في جدول محوري أعدت تهيئته للتو، بما في ذلك المصنفات المحمَّلة من ملف.
import com.aspose.cells.*;
Workbook workbook = new Workbook("output-top10-by-value-field.xlsx");
PivotTable pivotTable = workbook.getWorksheets().get(0).getPivotTables().get(0);
PivotField sportField = pivotTable.getRowFields().get(0);
PivotFieldTop10AutoShowSettings settings = sportField.getTop10AutoShowSettings();
System.out.println("AutoShow enabled: " + settings.isAutoShow());
System.out.println("Direction: " + (settings.isTop() ? "Top" : "Bottom"));
System.out.println("Item count: " + settings.getAutoShowCount());
System.out.println("Ranking data field index: " + settings.getRankBy());
تتوافق الخصائص الأربع مع سمات العرض التلقائي الكلاسيكية المكتوبة في XML للجدول المحوري (autoShow، topAutoShow، itemPageCount، rankBy)، ولذلك تعكس القيم المقروءة ما سطبقه جميع إصدارات Excel.
PivotField، التي يوفّرها isAutoShow() وisAscendShow() وgetAutoShowCount() وgetAutoShowField()، مهملة. استخدم كائن Top10AutoShowSettings بدلاً منها: تحل Top10AutoShowSettings.isAutoShow() محل PivotField.isAutoShow()، وتحل Top10AutoShowSettings.isTop() محل PivotField.isAscendShow()، وتحل Top10AutoShowSettings.getAutoShowCount() محل PivotField.getAutoShowCount()، وتحل Top10AutoShowSettings.getRankBy() محل PivotField.getAutoShowField(). وتُعد طريقة PivotField.top10AutoShow() الطريقة المدعومة لتغيير هذه الإعدادات.top10AutoShow مع حقول الصفوف والأعمدة. لا يمكن ترتيب حقل يقع فقط في منطقة الصفحة (التصفية) بهذه الطريقة لأن عناصره لا تظهر في متن الجدول المحوري.تتيح إصدارات Excel الحديثة الوصول إلى أفضل 10 بوصفه مرشح قيمة في قائمة الحقل (مرشحات القيم، أفضل 10…). ويمثل Aspose.Cells هذا الخيار من خلال الطريقة PivotField.filterTop10(int valueFieldIndex, PivotFilterType type, boolean isTop, int itemCount)، التي تُرجع كائن PivotFilter الذي أُنشئ:
valueFieldIndex — الفهرس بدءًا من الصفر لحقل البيانات الذي تُرتَّب العناصر وفق قيمه المجمَّعة.type — معنى itemCount. يحتفظ PivotFilterType.COUNT بعدد ثابت من العناصر (خيار «العناصر» في مربع الحوار). يحتفظ PivotFilterType.PERCENT بنسبة مئوية من العناصر، لذا تكون itemCount هي النسبة المئوية نفسها؛ أي أن قيمة 30 تحتفظ بأفضل 30 في المئة. يرتب PivotFilterType.SUM العناصر وفق التغطية التراكمية للقيم.isTop — استخدم true للأعلى وfalse للأسفل.itemCount — يمثل العدد N في «أفضل N»، وتعتمد وحدته على type.import com.aspose.cells.*;
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getCells().get("A1").putValue("Sport");
worksheet.getCells().get("B1").putValue("Quarter");
worksheet.getCells().get("C1").putValue("Sales");
String[] sports = { "Golf", "Tennis", "Rugby", "Cricket", "Boxing" };
int row = 2;
for (String sport : sports)
{
for (int quarter = 1; quarter <= 3; quarter++)
{
worksheet.getCells().get(row, 0).putValue(sport);
worksheet.getCells().get(row, 1).putValue("Qtr" + quarter);
worksheet.getCells().get(row, 2).putValue(1000 + 777 * row);
row++;
}
}
PivotTable pivotTable = worksheet.getPivotTables().add("A1:C16", 2, 5);
pivotTable.addFieldToArea(PivotFieldType.ROW, "Sport");
pivotTable.addFieldToArea(PivotFieldType.DATA, "Sales");
pivotTable.calculateData();
PivotField sportField = pivotTable.getRowFields().get(0);
// مرشح أفضل 10 - احتفظ بأفضل عنصرين حسب "مجموع المبيعات" (فهرس حقل البيانات 0)
sportField.filterTop10(0, PivotFilterType.COUNT, true, 2);
// لمرشح قائم على النسبة بدلاً من ذلك، احتفظ بأفضل 30٪ من العناصر:
// sportField.filterTop10(0, PivotFilterType.PERCENT, true, 30);
pivotTable.getPivotCache().refresh();
pivotTable.calculateData();
workbook.save("output-top10-filter.xlsx");
top10AutoShow وfilterTop10 ميزتين منفصلتين. يكتب العرض التلقائي سمة autoShow الكلاسيكية على حقل الجدول المحوري، وهي مدعومة في جميع إصدارات Excel منذ Excel 97. ويكتب filterTop10 مدخل PivotFilter حديثًا، ويتطلب Excel 2007 أو إصدارًا أحدث. عند فتح مصنف في إصدار أقدم من Excel، يعود الجدول المحوري الذي يستخدم المرشح الحديث إلى عرض جميع العناصر. وبالنسبة إلى المستندات التي يجب أن تخضع لدورة قراءة وكتابة عبر أدوات قديمة، فضّل top10AutoShow؛ أما المصنفات الحديثة، ففضّل filterTop10 لأنه يتكامل مع مرشحات القيم الأخرى.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.