Aspose.Cells kitaplığını kullanarak Microsoft Excel de bir dizi değeri döndüren soyut bir hesaplama motoru tanıtır. Varolan bir Excel dosyasını yükleyerek veya yeni bir Excel dosyası oluşturarak, Aspose.Cells tarafından sağlanan yöntemleri kullanarak bir dizi değeri alabiliriz ve sonucu döndürebiliriz. Son olarak, değiştirilmiş Excel dosyasını diske kaydederiz.
Aspose.Cells, Microsoft Excel tarafından desteklenmeyen kullanıcı tanımlı veya özel işlevleri uygulamak için kullanılan AbstractCalculationEngine sınıfını sağlar.
Bu makale, AbstractCalculationEngine aralığındaki değerlerin nasıl döndürüleceğini açıklayacaktır.
Aşağıdaki kod, AbstractCalculationEngine kullanımını gösterir ve yöntemi aracılığıyla değer aralığını döndürür.
Bir sınıf oluşturun ve içine CalculateCustomFunction fonksiyonunu ekleyin. Bu sınıf AbstractCalculationEngine‘ı genişletir.
// 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" } }); | |
} | |
} |
Şimdi yukarıdaki işlevi programınıza ekleyin.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
String outputDir = Utils.Get_OutputDirectory(); | |
Workbook workbook = new Workbook(); | |
Cells cells = workbook.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.setCustomEngine(new CustomFunctionStaticValue()); | |
workbook.calculateFormula(copt); | |
// Save to XLSX by setting the calc mode to manual | |
workbook.getSettings().getFormulaSettings().setCalculationMode(CalcModeType.MANUAL); | |
workbook.save(outputDir + "output.xlsx"); | |
// Save to PDF | |
workbook.save(outputDir + "output.pdf"); |