Возврат диапазона значений с помощью ICustomFunction
ICustomFunction устарел с момента выпуска Aspose.Cells for Java 20.8. Пожалуйста, используйтеАннотацияРасчетДвигатель учебный класс. ИспользованиеАннотацияРасчетДвигатель класс описан в следующей статье.
Возврат диапазона значений с помощью AbstractCalculationEngine.
Aspose.Cells предоставляетICustomFunctionинтерфейс, который используется для реализации пользовательских или пользовательских функций, которые не поддерживаются Microsoft Excel как встроенные функции.
В основном, когда вы реализуетеICustomFunction метод интерфейса, вам нужно вернуть одно значение ячейки. Но иногда вам нужно вернуть диапазон значений. В этой статье объясняется, как вернуть диапазон значений изICustomFunction.
Возврат диапазона значений с помощью ICustomFunction
Следующий код реализуетICustomFunction и возвращает диапазон значений через свой метод. Пожалуйста, проверьтевыходной файл excel ипдф сгенерированный с кодом для вашей справки.
Создайте класс с функциейВычислитьПользовательскуюФункция. Этот класс реализует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"); | |