Calcular o recalcular fórmulas dinámicamente

Cálculo de fórmula motor está integrado enAspose.Cells. No solo puede volver a calcular la fórmula importada desde el archivo del diseñador, sino que también permite calcular los resultados de las fórmulas agregadas en el tiempo de ejecución.

Adición de fórmulas y cálculo de resultados

Aspose.Cells admite la mayoría de las fórmulas o funciones que forman parte de Microsoft Excel. Los desarrolladores pueden usar estas fórmulas usando API o Designer Spreadsheets. Aspose.Excel admite un gran conjunto de fórmulas matemáticas, de cadena, booleanas, de fecha/hora, estadísticas, de base de datos, de búsqueda y de referencia.

Utilice la propiedad Fórmula de la clase Cell para agregar una fórmula a una celda. Al aplicar una fórmula a una celda, siempre comience la cadena con un signo igual (=) como lo hace al crear una fórmula en Microsoft Excel. Use una coma (,) para delimitar los parámetros de la función.

Para calcular los resultados de las fórmulas, llame al método CalculateFormula de la clase de Excel que procesa todas las fórmulas incrustadas en un archivo de Excel. Leer elurl: lista de funciones admitidas por el método CalculateFormula.

 //Instantiating a Workbook object

Workbook workbook = new Workbook();

//Adding a new worksheet to the Excel object

int sheetIndex = workbook.Worksheets.Add();

//Obtaining the reference of the newly added worksheet by passing its sheet index

Worksheet worksheet = workbook.Worksheets[sheetIndex];

//Adding a value to "A1" cell

worksheet.Cells["A1"].PutValue(1);

//Adding a value to "A2" cell

worksheet.Cells["A2"].PutValue(2);

//Adding a value to "A3" cell

worksheet.Cells["A3"].PutValue(3);

//Adding a SUM formula to "A4" cell

worksheet.Cells["A4"].Formula = "=SUM(A1:A3)";

//Calculating the results of formulas

workbook.CalculateFormula();

//Get the calculated value of the cell

string value = worksheet.Cells["A4"].Value.ToString();

//Saving the Excel file

workbook.Save("Adding Formula.xls");

Cálculo de fórmulas una sola vez

Cuando el usuario llama a Workbook.CalculateFormula() para calcular los valores de las fórmulas dentro de la plantilla del libro de trabajo, Aspose.Cells crea una cadena de cálculo. Aumenta el rendimiento cuando las fórmulas se calculan por segunda o tercera vez, etc. Sin embargo, si la plantilla de usuario contiene muchas fórmulas diversas, la primera vez que se calcula la fórmula puede consumir mucho tiempo de procesamiento y memoria de la CPU.

Aspose.Cells le permite desactivar la creación de una cadena de cálculo, lo que es útil en escenarios en los que desea calcular fórmulas de su archivo solo una vez.

Si está buscando mejorar el rendimiento de los cálculos de fórmulas para Aspose.Cells y no desea crear una cadena de cálculo de fórmulas, configureFormulaSettings.EnableCalculationChain comofalso . Por defecto, está configurado comoverdadero.

 string FilePath = @"..\..\..\Sample Files\";

string FileName = FilePath + "Adding Formula.xlsx";

//Load the template workbook

Workbook workbook = new Workbook(FileName);

//Print the time before formula calculation

Console.WriteLine(DateTime.Now);

//Set the CreateCalcChain as false

workbook.Settings.FormulaSettings.EnableCalculationChain = false;

//Calculate the workbook formulas

workbook.CalculateFormula();

//Print the time after formula calculation

Console.WriteLine(DateTime.Now);

workbook.Save(FileName);

Cálculo directo de fórmula

El motor de cálculo de fórmulas está integrado en Aspose.Cells. Además, al volver a calcular la fórmula importada del archivo del diseñador, Aspose.Cells también permite calcular los resultados de las fórmulas directamente. A veces, necesita calcular los resultados de las fórmulas directamente sin agregarlos realmente en una hoja de cálculo. Los valores de las celdas utilizadas en la fórmula ya existen en una hoja de trabajo y todo lo que necesita es encontrar el resultado de esos valores en función de alguna fórmula de Ms-Excel sin agregar la fórmula en una hoja de trabajo.

Puede usar Aspose.Cells Motor de cálculo de fórmula API, es decir**hoja de trabajo. Calcular (fórmula de cadena)**para calcular los resultados de tales fórmulas sin agregarlas realmente en la hoja de trabajo.

 //Create a workbook

Workbook workbook = new Workbook();

//Access first worksheet

Worksheet worksheet = workbook.Worksheets[0];

//Put 20 in cell A1

Cell cellA1 = worksheet.Cells["A1"];

cellA1.PutValue(20);

//Put 30 in cell A2

Cell cellA2 = worksheet.Cells["A2"];

cellA2.PutValue(30);

//Calculate the Sum of A1 and A2

var results = worksheet.CalculateFormula("=Sum(A1:A2)");

Cell cellA3 = worksheet.Cells["A3"];

cellA3.PutValue(results);

//Print the output

Debug.WriteLine("Value of A1: " + cellA1.StringValue);

Debug.WriteLine("Value of A2: " + cellA2.StringValue);

Debug.WriteLine("Result of Sum(A1:A2): " + results.ToString());

workbook.Save("Calulate Any Formulae.xls");

Descargar código de muestra