این تصویر دارای یک ویژگی alt خالی است. نام فایل آن asposecells-for-java-e1558954178996.jpg است

Aspose.Cells for Java v19.11 منتشر شد که شامل بسیاری از ویژگی ها و ارتقاءهای جدید است. پردازش جداول محوری با ارائه مرتب‌سازی و پنهان کردن داده‌ها بر اساس برخی معیارها برای دریافت اطلاعات فشرده برای گزارش‌ها و ارائه‌ها افزایش می‌یابد. خواندن و نوشتن در جداول با QueryTable به عنوان منبع داده اکنون در دسترس است. این پایان این نسخه نیست، بلکه آغاز یک لیست طولانی از ویژگی های جدید مانند اصلاح اعتبار سنجی موجود با افزودن CellArea، بازیابی اطلاعات اتصال OData و دریافت عرض متن از مقدار سلول برای طرح بندی بهتر است. تمام جزئیات این نسخه را می توان در [یادداشت های انتشار 2 که با هر نسخه جدید منتشر می شود، پیدا کرد. اجازه دهید نگاهی به این ویژگی های جدید هیجان انگیز داشته باشیم.

مرتب سازی و پنهان کردن داده ها در جدول محوری اکسل با استفاده از جاوا

مواردی وجود دارد که اطلاعات واضح در جدول محوری مورد نیاز است. ممکن است برای مرتب کردن داده‌ها در جدول محوری به برخی ویژگی‌ها نیاز داشته باشیم و سپس ردیف‌ها را بر اساس معیارهای خاصی پنهان کنیم. کد نمونه زیر این ویژگی را نشان می دهد

// برای نمونه‌های کامل و فایل‌های داده، لطفاً به 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();

// ذخیره فایل اکسل
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 استفاده کرد که می تواند در فایل اکسل نیز استفاده شود. این اطلاعات را می توان با استفاده از Aspose.Cells API با استفاده از کلاس DataMashup Workbook از فایل اکسل بازیابی کرد. اطلاعات مورد نظر را از ویژگی 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 را به اعتبارسنجی موجود اضافه کنید

فرض کنید که یک فایل اکسل دارید که دارای [اعتبار] است که به خوبی کار می کند. Aspose.Cells همیشه هر زمان که یک ناحیه سلولی به اعتبار سنجی اضافه می شود، بررسی می کند تا بررسی کند که آیا منطقه از قبل وجود دارد یا خیر. اگر تعداد زیادی اعتبارسنجی در فایل اکسل شما وجود داشته باشد، ممکن است در طول این بررسی با ضربه عملکرد مواجه شوید. برای رسیدگی به این مشکل، نیاز به پیکربندی API برای کنترل انجام این بررسی وجود دارد. روش Validation.AddAreaCellArea cellArea, bool checkIntersection, bool checkEdge)) برای دریافت این کنترل وجود دارد زیرا checkIntersection پارامتر API را هدایت می کند تا تقاطع این ناحیه جدید اضافه شده با مناطق موجود را بررسی کند. اگر این پارامتر را روی false تنظیم کنید، بررسی مناطق دیگر غیرفعال می شود. اگر می خواهید مناطق اعمال شده را بررسی کنید، پارامتر checkEdge را روی true تنظیم کنید. توجه داشته باشید که اگر قسمت بالا سمت چپ به منطقه جدید بازنشانی شود، تنظیمات داخلی دوباره ساخته می‌شوند. با این حال، اگر مطمئن هستید که ناحیه جدید قسمت بالا سمت چپ نیست، مقدار ویژگی checkEdge را روی false قرار دهید.

می‌توانید کد نمونه زیر را امتحان کنید که نشان‌دهنده افزودن CellArea جدید به اعتبارسنجی است که قبلاً در فایل اکسل وجود دارد.

// برای نمونه‌های کامل و فایل‌های داده، لطفاً به 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
validation.addArea(cellArea, false, false);

// کتاب کار خروجی را ذخیره کنید.
workbook.save(outputDir + "ValidationsSample_out.xlsx");

برای اطلاعات بیشتر و نمونه فایل برای تست این ویژگی به مقاله زیر نگاهی بیندازید.

دریافت عرض متن از مقدار سلول

طرح ارائه بهتر داده ها هدف هر توسعه دهنده ای است. برای این پشتیبانی در API برای محاسبه عرض سلول هنگام قالب‌بندی گزارش‌ها/ارائه‌ها مورد نیاز است. برای کمک به توسعه دهندگان، Aspose.Cells یک تابع GetTextWidth() در کلاس CellHelper ارائه می دهد. با استفاده از این توسعه دهنده تابع، عرض متن را در یک سلول، بر اساس طول متن و سبک دریافت خواهید کرد. کد نمونه زیر استفاده از 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 بدون خطا برای در نظر گرفتن برگه مورد نیاز ساخته شده است
  • هنگام تبدیل فایل اکسل به EMF، حاشیه های مناسب حفظ می شوند
  • SheetRender برای ارائه تعداد صفحات دقیق‌تر بهبود یافته است
  • رندر کردن نمودار به تصویر بهبود یافته است. شما برچسب های داده ای را با همان سبک و مقادیر مناسب در تصویر خروجی دریافت خواهید کرد
  • تابع Cell.setHtmlString() برای پردازش هایپرلینک ها و تگ ها/اسکریپت های HTML بهبود یافته است.

در زیر چند منبع مهم وجود دارد که می توان در هنگام آزمایش نسخه جدید به آنها اشاره کرد: