Возвращение Диапазона Значений с Использованием AbstractCalculationEngine
Aspose.Cells предоставляет класс AbstractCalculationEngine, который используется для реализации определяемых пользователем или пользовательских функций, которые не поддерживаются Microsoft Excel в качестве встроенных функций.
В данной статье будет объяснено, как вернуть диапазон значений из AbstractCalculationEngine.
Следующий код демонстрирует использование класса AbstractCalculationEngine и возвращает диапазон значений через его метод.
Создайте класс с функцией CalculateCustomFunction. Этот класс реализует AbstractCalculationEngine.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
public class CustomFunctionStaticValue : AbstractCalculationEngine | |
{ | |
public override void Calculate(CalculationData data) | |
{ | |
data.CalculatedValue = 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 workbook = new Workbook(); | |
Cells cells = workbook.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 calculationOptions = new CalculationOptions(); | |
calculationOptions.CustomEngine = new CustomFunctionStaticValue(); | |
workbook.CalculateFormula(calculationOptions); | |
// Save to xlsx by setting the calc mode to manual | |
workbook.Settings.FormulaSettings.CalculationMode = CalcModeType.Manual; | |
workbook.Save(dataDir + "output_out.xlsx"); | |
// Save to pdf | |
workbook.Save(dataDir + "output_out.pdf"); |