إرجاع مجموعة من القيم باستخدام ICustomFunction
ICustomFunction تمت إهماله منذ إصدار Aspose.Cells for Java 20.8. يرجى استخدام فئة AbstractCalculationEngine. يتم وصف استخدام فئة AbstractCalculationEngine في المقال التالي.
توفر Aspose.Cells واجهة ICustomFunction التي تُستخدم لتنفيذ وظائف مخصصة أو مخصصة لا تدعمها Microsoft Excel كوظائف مدمجة.
عند تنفيذ طريقة واجهة ICustomFunction عادةً، تحتاج إلى إرجاع قيمة خلية واحدة. ولكن في بعض الأحيان، قد تحتاج إلى إرجاع مجموعة من القيم. سيشرح هذا المقال كيفية إرجاع مجموعة القيم من ICustomFunction.
إرجاع مجموعة من القيم باستخدام ICustomFunction
الكود التالي ينفذ ICustomFunction ويُرجع مجموعة القيم عبر طريقة القيام به. يُرجى التحقق من ملف الإكسل الناتج وPDF الذي تم إنشاؤه بالكود للرجوع إليه.
إنشاء فئة بوظيفة CalculateCustomFunction. تنفذ هذه الفئة ICustomFunction.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
import java.util.ArrayList; | |
import com.aspose.cells.AbstractCalculationEngine; | |
import com.aspose.cells.CalculationData; | |
import com.aspose.cells.DateTime; | |
public class CustomFunctionStaticValue extends AbstractCalculationEngine { | |
@Override | |
public void calculate(CalculationData calculationData) { | |
calculationData.setCalculatedValue(new Object[][] { new Object[] { new DateTime(2015, 6, 12, 10, 6, 30), 2 }, | |
new Object[] { 3.0, "Test" } }); | |
} | |
} |
الآن استخدم الوظيفة أعلاه في برنامجك.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(ReturningRangeOfValues.class); | |
Workbook wb = new Workbook(); | |
Cells cells = wb.getWorksheets().get(0).getCells(); | |
Cell cell = cells.get(0, 0); | |
cell.setArrayFormula("=MYFUNC()", 2, 2); | |
Style style = cell.getStyle(); | |
style.setNumber(14); | |
cell.setStyle(style); | |
CalculationOptions copt = new CalculationOptions(); | |
copt.setCustomFunction(new CustomFunctionStaticValue()); | |
wb.calculateFormula(copt); | |
// Save to xlsx by setting the calc mode to manual | |
wb.getSettings().getFormulaSettings().setCalculationMode(CalcModeType.MANUAL); | |
wb.save(dataDir + "output.xlsx"); | |
// Save to pdf | |
wb.save(dataDir + "output.pdf"); | |