تحتوي هذه الصورة على سمة alt فارغة ؛ اسم الملف الخاص به هو asposecells-for-java-e1558954178996.jpg

تم إصدار Aspose.Cells for Java v19.11 الذي يحتوي على العديد من الميزات الجديدة والترقيات. يتم تحسين معالجة الجداول المحورية من خلال توفير بيانات الفرز والإخفاء بناءً على بعض المعايير للحصول على معلومات مضغوطة لإعداد التقارير والعروض التقديمية. القراءة والكتابة إلى الجداول باستخدام QueryTable كمصدر بيانات متاح الآن. هذه ليست نهاية هذا الإصدار ولكنها بداية قائمة طويلة من الميزات الجديدة مثل تعديل التحقق الحالي عن طريق إضافة CellArea واسترداد معلومات اتصال OData والحصول على عرض نص لقيمة الخلية لتخطيطات أفضل. يمكن العثور على جميع تفاصيل هذا الإصدار في ملاحظات الإصدار المنشورة مع كل إصدار جديد. دعونا نلقي نظرة على هذه الميزات المثيرة الجديدة واحدة تلو الأخرى.

فرز وإخفاء البيانات في Excel Pivot Table باستخدام Java

هناك حالات تتطلب معلومات واضحة في الجدول المحوري. قد نطلب بعض الميزات لفرز البيانات في الجدول المحوري ثم إخفاء الصفوف وفقًا لمعايير معينة. يوضح نموذج التعليمات البرمجية التالي هذه الميزة

// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-cells/Aspose.Cells-for-Java
// المسار إلى دليل الإخراج.
String sourceDir = Utils.Get_SourceDirectory();
String outputDir = Utils.Get_OutputDirectory();

Workbook workbook = new Workbook(sourceDir + "PivotTableHideAndSortSample.xlsx");

Worksheet worksheet = workbook.getWorksheets().get(0);

PivotTable pivotTable = worksheet.getPivotTables().get(0);
CellArea dataBodyRange = pivotTable.getDataBodyRange();
int currentRow = 3;
int rowsUsed = dataBodyRange.EndRow;

// فرز النقاط تنازليًا
PivotField field = pivotTable.getRowFields().get(0);
field.setAutoSort(true);
field.setAscendSort(false);
field.setAutoSortField(0);

pivotTable.refreshData();
pivotTable.calculateData();

// إخفاء الصفوف بدرجة أقل من 60
while (currentRow < rowsUsed)
{
	Cell cell = worksheet.getCells().get(currentRow, 1);
	double score = (double) cell.getValue();
	if (score < 60)
	{
		worksheet.getCells().hideRow(currentRow);
	}
	currentRow++;
}

pivotTable.refreshData();
pivotTable.calculateData();

// حفظ ملف Excel
workbook.save(outputDir + "PivotTableHideAndSort_out.xlsx");

توضح الصورة التالية الجدول المحوري قبل وبعد تشغيل هذه التعليمات البرمجية على عينة البيانات.

قم بزيارة المقالة التالية للحصول على مزيد من المعلومات وعينات من الملفات.

قراءة وكتابة الجدول باستخدام مصدر بيانات جدول الاستعلام

تعد الجداول التي تحتوي على جدول استعلام كمصدر بيانات شائعة جدًا. قد نطلب قراءة مثل هذه الجداول وتعديلها مثل إظهار المجموع وما إلى ذلك. في وقت سابق كانت هذه الميزة متاحة ولكن تم توفير دعم لملف XLS. فيما يلي مثال على رمز يقرأ جدولًا ثم يغيره لإظهار الإجمالي في النهاية.

// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-cells/Aspose.Cells-for-Java
// المسار إلى دليل الإخراج.
String sourceDir = Utils.Get_SourceDirectory();
String outputDir = Utils.Get_OutputDirectory();

// تحميل كائن المصنف
Workbook workbook = new Workbook(sourceDir + "SampleTableWithQueryTable.xls");

Worksheet worksheet = workbook.getWorksheets().get(0);

ListObject table = worksheet.getListObjects().get(0);

// تحقق من نوع مصدر البيانات إذا كان جدول استعلام
if (table.getDataSourceType() == TableDataSourceType.QUERY_TABLE)
{
	table.setShowTotals(true);
}

// حفظ الملف
workbook.save(outputDir + "SampleTableWithQueryTable_out.xls");

توضح الصورة التالية كيفية عمل وظيفة setShowTotals():

يمكنك الحصول على ملفات العينة ومزيد من التفاصيل في المقالة التالية:

إحضار معلومات اتصال OData

يمكن استخدام OData للحصول على الخلاصة أو البيانات من RESTful API والتي يمكن استخدامها في ملف Excel أيضًا. يمكن استرداد هذه المعلومات من ملف Excel باستخدام Apose.Cells API باستخدام فئة DataMashup من المصنف. احصل على المعلومات المطلوبة من خاصية PowerQueryFormulas التي تحتوي على PowerQueryFormula و PowerQueryFormulaItem.

يوضح مقتطف التعليمات البرمجية التالي استخدام هذه الفئات لاسترداد معلومات OData.

// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-cells/Aspose.Cells-for-Java
// الطريق إلى الدلائل.
String sourceDir = Utils.Get_SourceDirectory();

Workbook workbook = new Workbook(sourceDir + "ODataSample.xlsx");
PowerQueryFormulaCollction PQFcoll = workbook.getDataMashup().getPowerQueryFormulas();
for (Object obj : PQFcoll)
{
    PowerQueryFormula PQF = (PowerQueryFormula)obj;
    System.out.println("Connection Name: " + PQF.getName());
    PowerQueryFormulaItemCollection PQFIcoll = PQF.getPowerQueryFormulaItems();
   for (Object obj2 : PQFIcoll)
    {
        PowerQueryFormulaItem PQFI = (PowerQueryFormulaItem)obj2;
        System.out.println("Name: " + PQFI.getName());
        System.out.println("Value: " + PQFI.getValue());
    }
}

تُظهر الصورة التالية ملف عينة يُستخدم في نموذج التعليمات البرمجية أعلاه لجلب معلومات اتصال OData.

إليك إخراج البرنامج باستخدام ملف العينة:

تحتوي هذه المقالة على نموذج للملف ومزيد من التفاصيل للتحقق من هذه الميزة:

إضافة CellArea إلى التحقق الموجود

افترض أن لديك ملف Excel يحتوي على التحقق والذي يعمل بشكل جيد. تقوم Aspose.Cells دائمًا بإجراء فحص للتحقق مما إذا كانت المنطقة موجودة بالفعل أم لا كلما تمت إضافة منطقة خلية إلى التحقق من الصحة. قد تواجه مشكلة في الأداء أثناء هذا الفحص إذا كان هناك عدد كبير من عمليات التحقق من الصحة في ملف Excel الخاص بك. لمعالجة هذه المشكلة ، هناك حاجة إلى تكوين واجهة برمجة التطبيقات للتحكم في إجراء هذا الفحص. Validation.AddAreaCellArea cellArea، bool checkIntersection، bool checkEdge)) توجد طريقة للحصول على عنصر التحكم هذا حيث أن معلمة checkIntersection توجه واجهة برمجة التطبيقات للتحقق من تقاطع هذه المنطقة المضافة حديثًا مع المناطق الموجودة. إذا قمت بتعيين هذه المعلمة على خطأ ، فسيتم تعطيل التحقق من المناطق الأخرى. إذا كنت تريد التحقق من المناطق المطبقة ، فاضبط معلمة checkEdge على صواب. لاحظ أنه يتم إعادة بناء الإعدادات الداخلية إذا تمت إعادة تعيين المنطقة العلوية اليسرى إلى المنطقة الجديدة. ومع ذلك ، إذا كنت متأكدًا من أن المنطقة الجديدة ليست المنطقة العلوية اليسرى ، فقم بتعيين قيمة الخاصية checkEdge إلى false.

يمكنك تجربة نموذج التعليمات البرمجية التالي الذي يوضح إضافة CellArea جديدة إلى عملية تحقق موجودة بالفعل في ملف Excel.

// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-cells/Aspose.Cells-for-Java
// الطريق إلى الدلائل.
String sourceDir = Utils.Get_SourceDirectory();
String outputDir = Utils.Get_OutputDirectory();

Workbook workbook = new Workbook(sourceDir + "ValidationsSample.xlsx");

// الوصول إلى ورقة العمل الأولى.
Worksheet worksheet = workbook.getWorksheets().get(0);

// الوصول إلى مجموعة التحقق من صحة ورقة العمل
Validation validation = worksheet.getValidations().get(0);

// إنشاء منطقة الخلية الخاصة بك.
CellArea cellArea = CellArea.createCellArea("D5", "E7");

// إضافة منطقة الخلية إلى التحقق من الصحة
validation.addArea(cellArea, false, false);

// احفظ مصنف الإخراج.
workbook.save(outputDir + "ValidationsSample_out.xlsx");

ألق نظرة على المقالة التالية للحصول على مزيد من التفاصيل وملف نموذج لاختبار هذه الميزة.

الحصول على عرض النص لقيمة الخلية

تصميم أفضل لعرض البيانات هو هدف كل مطور. لهذا الدعم مطلوب في API لحساب عرض الخلية عند تنسيق التقارير / العروض التقديمية. لمساعدة المطورين ، يوفر Aspose.Cells دالة GetTextWidth() في فئة CellsHelper. باستخدام مطور هذه الوظيفة ، سيحصل على عرض النص في الخلية ، بناءً على طول النص ونمطه. يوضح نموذج التعليمات البرمجية التالي استخدام CellsHelper.GetTextWidth) عن طريق الحصول على عرض نص القيمة في الخلية.

يوضح نموذج التعليمات البرمجية التالي هذه الميزة:

// للحصول على أمثلة وملفات بيانات كاملة ، يرجى الانتقال إلى https://github.com/aspose-cells/Aspose.Cells-for-Java
// المسار إلى دليل الإخراج.
String sourceDir = Utils.Get_SourceDirectory();Workbook workbook = new Workbook(sourceDir + "GetTextWidthSample.xlsx");

System.out.println("Text width: " + CellsHelper.getTextWidth(workbook.getWorksheets().get(0).getCells().get("A1").getStringValue(), workbook.getDefaultStyle().getFont(), 1));

يمكنك تنزيل نموذج الملف هنا.

تحسينات أخرى

فيما يلي بعض التحسينات والتحسينات التي تم إجراؤها في هذا الإصدار:

  • تم تحسين وظيفة Cells.importCSV لتجنب الاستثناء “لا يمكن أن تتجاوز قيمة السلسلة 255 حرفًا”
  • تم إجراء تحسين في أداء Cells.removeDupilcates لمجموعة البيانات الكبيرة
  • تم تحسين عرض الرسم البياني الشعاعي إلى HTML
  • تتم إضافة المزيد من الدقة إلى قياس المحور أثناء التحويل إلى PNG
  • يتم إجراء تحسينات لتجنب التلف بعد تحديث البيانات المصدر للجدول المحوري.
  • احصل على إخراج تنسيق تاريخ روسي (مخصص) أكثر دقة باستخدام هذا الإصدار
  • تم جعل LoadFilter خاليًا من الأخطاء للنظر في الورقة المطلوبة
  • يتم الاحتفاظ بالحدود المناسبة أثناء تحويل ملف Excel إلى EMF
  • تم تحسين SheetRender لتوفير عدد صفحات أكثر دقة
  • يتم تحسين عرض المخطط على صورة. ستحصل على تسميات بيانات بنفس النمط والقيم المناسبة في صورة الإخراج
  • تم تحسين وظيفة Cell.setHtmlString() لمعالجة الارتباطات التشعبية وعلامات HTML / البرامج النصية.

فيما يلي بعض الموارد المهمة التي يمكن الرجوع إليها أثناء اختبار الإصدار الجديد: