Returnera ett område av värden med hjälp av ICustomFunction
ICustomFunction klassen är nedlagd sedan versionen Aspose.Cells for Java 20.8. Använd istället AbstractCalculationEngine klassen. Användningen av AbstractCalculationEngine klassen beskrivs i följande artikel.
Returnera ett område av värden med hjälp av AbstractCalculationEngine.
Aspose.Cells tillhandahåller ICustomFunction gränssnitt som används för att implementera användardefinierade eller anpassade funktioner som inte stöds av Microsoft Excel som inbyggda funktioner.
Mestadels när du implementerar ICustomFunction gränssnittet metod, behöver du returnera ett enskilt cellvärde. Men ibland behöver du returnera ett område av värden. Den här artikeln kommer att förklara hur man returnerar en serie värden från ICustomFunction.
Returnera ett område av värden med hjälp av ICustomFunction
Följande kod implementerar ICustomFunction och returnerar området av värden via dess metod. Vänligen se den utmatade Excel-filen och pdf som genererats med koden för din referens.
Skapa en klass med en funktion CalculateCustomFunction. Denna klass implementerar 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" } }); | |
} | |
} |
Använd nu den ovanstående funktionen i ditt program.
// 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"); | |