Hola de nuevo!!
Espero que estéis bien y de vacaciones o a punto de empezarlas!, a mí todavía me quedan algunas semanas, pero pronto llegarán.
Sobre el post que escribí sobre un ejemplo práctico de cálculos con Typescript: EJEMPLO PRÁCTICO DE CÁLCULOS CON TYPESCRIPT y que a su vez era un método alternativo (y mejorado) de este otro: EJEMPLO PRÁCTICO DE ALGUNOS CÁLCULOS CON TYPESCRIPT.
Hoy me gustaría escribir un tercer ejemplo o método de como podemos realizar nuestros cálculos con Typescript y aplicar a varios casos determinadas casuísticas. El ejemplo será el inicial (el del cálculo de la Seguridad Social que ha de pagar una empresa por sus trabajadores y la suma del coste total.) Los detalles de los elementos del cálculo los tenéis en el post inicial.
El código de este script es el siguiente:
function main(workbook: ExcelScript.Workbook) {
var miHoja = workbook.getWorksheet("Hoja1");
var miRango = miHoja.getUsedRange();
var fin = miRango.getRowCount();
//indexamos valores
var info = miHoja.getRangeByIndexes(1, 0, fin, 2).getValues();
var ssocial = 0;
// recorremos valores y aplicamos cálculos
for (var i = 0; i < fin - 1; i++) {
var miInfo = info[i];
if (miInfo[1] < 4139.4 * 12) {
ssocial = +miInfo[1] * 31.4 / 100;
} else {
ssocial = (4139.4 * 12 * 31.4) / 100;
}
//pasamos información a la hoja
var tit= [["SEG SOCIAL", "TOTAL"]];
miHoja.getRange("C1:D1").setValues(tit);
miHoja.getCell(i + 1, 2).setValue(ssocial);
miHoja.getCell(i + 1, 3).setValue(ssocial + +miInfo[1]);
}
}
En este caso trabajamos también con un loop, pero para evitar que sea demasiado lento, debemos indexar los datos de las columnas previamente (variable info), de esta forma no tendremos que estar leyendo continuamente cuando recorramos los datos. Luego igualamos los datos de la matriz a otra variable que nos permitirá indicar la columna sobre la que estamos trabajando.
El resultado es muy rápido y eficiente. Sin duda a tener muy en cuenta a la hora de programar nuestros procesos en Typescript.

Y esto es todo, espero que os haya sido de utilidad!!.
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies