Retourner une plage de valeurs en utilisant ICustomFunction
Le ICustomFunction est obsolète depuis la version Aspose.Cells for Java 20.8. Veuillez utiliser la classe AbstractCalculationEngine. L’utilisation de la classe AbstractCalculationEngine est décrite dans l’article suivant.
Retourner une plage de valeurs en utilisant AbstractCalculationEngine
Aspose.Cells fournit l’interface ICustomFunction qui est utilisée pour implémenter des fonctions personnalisées ou personnalisées qui ne sont pas prises en charge par Microsoft Excel en tant que fonctions intégrées.
La plupart du temps, lorsque vous implémentez la méthode de l’interface ICustomFunction, vous devez renvoyer une seule valeur de cellule. Mais parfois, vous devez renvoyer une plage de valeurs. Cet article expliquera comment renvoyer la plage de valeurs depuis ICustomFunction.
Retourner une plage de valeurs en utilisant ICustomFunction
Le code suivant implémente ICustomFunction et renvoie la plage de valeurs via sa méthode. Veuillez vérifier le fichier Excel de sortie et le pdf généré avec le code pour votre référence.
Créez une classe avec une fonction CalculateCustomFunction. Cette classe implémente 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" } }); | |
} | |
} |
Utilisez maintenant la fonction ci-dessus dans votre programme.
// 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"); | |