Возврат диапазона значений с помощью ICustomFunction
ICustomFunction устарел с момента выпуска Aspose.Cells for Java 20.8. Пожалуйста, используйтеАннотацияРасчетДвигатель учебный класс. ИспользованиеАннотацияРасчетДвигатель класс описан в следующей статье.
Возврат диапазона значений с помощью AbstractCalculationEngine.
Aspose.Cells предоставляетICustomFunctionинтерфейс, который используется для реализации пользовательских или пользовательских функций, которые не поддерживаются Microsoft Excel как встроенные функции.
В основном, когда вы реализуетеICustomFunction метод интерфейса, вам нужно вернуть одно значение ячейки. Но иногда вам нужно вернуть диапазон значений. В этой статье объясняется, как вернуть диапазон значений изICustomFunction.
Следующий код реализуетICustomFunctionи возвращает диапазон значений через свой метод.
Создайте класс с функциейВычислитьПользовательскуюФункция. Этот класс реализуетICustomFunction.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
public class CustomFunctionStaticValue : ICustomFunction | |
{ | |
public object CalculateCustomFunction(string functionName, ArrayList paramsList, ArrayList contextObjects) | |
{ | |
return 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-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create workbook | |
Workbook wb = new Workbook(); | |
Cells cells = wb.Worksheets[0].Cells; | |
// Set formula | |
Cell cell = cells[0, 0]; | |
cell.SetArrayFormula("=MYFUNC()", 2, 2); | |
Style style = cell.GetStyle(); | |
style.Number = 14; | |
cell.SetStyle(style); | |
// Set calculation options for formula | |
CalculationOptions copt = new CalculationOptions(); | |
copt.CustomEngine = new CustomFunctionStaticValue(); | |
wb.CalculateFormula(copt); | |
// Save to xlsx by setting the calc mode to manual | |
wb.Settings.FormulaSettings.CalculationMode = CalcModeType.Manual; | |
wb.Save(dataDir + "output_out.xlsx"); | |
// Save to pdf | |
wb.Save(dataDir + "output_out.pdf"); |