Establecimiento y obtención de valores de rango, texto o fórmulas mediante la API de JavaScript de Excel

En este artículo se proporcionan ejemplos de código que establecen y obtienen valores de rango, texto o fórmulas con la API de JavaScript de Excel. Para obtener la lista completa de propiedades y métodos que admite el Range objeto, vea Clase Excel.Range.

Nota:

La API de JavaScript para Excel no tiene un objeto o clase de "Celda". En su lugar, se definen todas las celdas de Excel como objetos Range. Una celda individual en la interfaz de usuario de Excel se traduce en un objeto Range con una celda en la API de JavaScript para Excel. Un solo objeto Range también puede contener varias celdas contiguas. Consulte Trabajar con celdas mediante la API de JavaScript para Excel para obtener más información.

Establecer valores o fórmulas

En los ejemplos de código siguientes se establecen valores y fórmulas para una sola celda o un rango de celdas.

Establecer el valor para una única celda

En el ejemplo de código siguiente se establece el valor de la celda C3 en "5" y, después, se establece el ancho de las columnas que mejor se ajusta a los datos.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("C3");
    range.values = [[ 5 ]];
    range.format.autofitColumns();

    await context.sync();
});

Datos antes de que se actualice el valor de las celdas

Datos en Excel antes de actualizar el valor de celda.

Datos después de que se actualice el valor de las celdas

Datos en Excel después de actualizar el valor de la celda.

Establecer valores para un rango de celdas

El ejemplo de código siguiente establece los valores de las celdas del rango B5:D5 y, después, establece el ancho de las columnas que mejor se ajusta a los datos.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let data = [
        ["Potato Chips", 10, 1.80],
    ];

    let range = sheet.getRange("B5:D5");
    range.values = data;
    range.format.autofitColumns();

    await context.sync();
});

Datos antes de que se actualicen los valores de las celdas

Datos en Excel antes de que se actualicen los valores de celda.

Datos después de que se actualicen los valores de las celdas

Datos en Excel después de actualizar los valores de celda.

Establecer la fórmula para una única celda

El ejemplo de código siguiente establece una fórmula para la celda E3 y, después, establece el ancho de las columnas que mejor se ajusta a los datos.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("E3");
    range.formulas = [[ "=C3 * D3" ]];
    range.format.autofitColumns();

    await context.sync();
});

Datos antes de que se establezca la fórmula de la celda

Datos en Excel antes de establecer la fórmula de celda.

Datos después de que se establezca la fórmula de la celda

Datos en Excel después de establecer la fórmula de celda.

Establecer fórmulas para un rango de celdas

El ejemplo de código siguiente establece las fórmulas de las celdas del rango E2:E6 y, después, establece el ancho de las columnas que mejor se ajusta a los datos.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let data = [
        ["=C3 * D3"],
        ["=C4 * D4"],
        ["=C5 * D5"],
        ["=SUM(E3:E5)"]
    ];

    let range = sheet.getRange("E3:E6");
    range.formulas = data;
    range.format.autofitColumns();

    await context.sync();
});

Datos antes de que se establezcan las fórmulas de la celda

Datos en Excel antes de establecer fórmulas de celda.

Datos después de que se establezcan las fórmulas de la celda

Datos en Excel después de establecer fórmulas de celda.

Obtener valores, texto o fórmulas

Estos ejemplos de código obtienen valores, texto y fórmulas de un rango de celdas.

Obtener valores de un rango de celdas

El ejemplo de código siguiente obtiene el intervalo B2:E6, carga su values propiedad y escribe los valores en la consola. La values propiedad de un rango especifica los valores sin procesar que contienen las celdas. Incluso si algunas celdas de un rango contienen fórmulas, la values propiedad del rango especifica los valores sin procesar de esas celdas, no ninguna de las fórmulas.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("values");
    await context.sync();

    console.log(JSON.stringify(range.values, null, 4));
});

Datos en el rango (los valores de la columna E son el resultado de las fórmulas)

Datos en Excel después de establecer fórmulas de celda.

range.values (como se registró en la consola mediante el ejemplo de código anterior)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        2,
        7.5,
        15
    ],
    [
        "Coffee",
        1,
        34.5,
        34.5
    ],
    [
        "Chocolate",
        5,
        9.56,
        47.8
    ],
    [
        "",
        "",
        "",
        97.3
    ]
]

Obtener texto de un rango de celdas

En el ejemplo de código siguiente se obtiene el intervalo B2:E6, se carga su text propiedad y se escribe en la consola. La text propiedad de un rango especifica los valores de visualización de las celdas del rango. Incluso si algunas celdas de un rango contienen fórmulas, la text propiedad del rango especifica los valores para mostrar de esas celdas, no ninguna de las fórmulas.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("text");
    await context.sync();

    console.log(JSON.stringify(range.text, null, 4));
});

Datos en el rango (los valores de la columna E son el resultado de las fórmulas)

Datos en Excel después de establecer fórmulas de celda.

range.text (como se registró en la consola mediante el ejemplo de código anterior)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        "2",
        "7.5",
        "15"
    ],
    [
        "Coffee",
        "1",
        "34.5",
        "34.5"
    ],
    [
        "Chocolate",
        "5",
        "9.56",
        "47.8"
    ],
    [
        "",
        "",
        "",
        "97.3"
    ]
]

Obtener fórmulas de un rango de celdas

En el ejemplo de código siguiente se obtiene el intervalo B2:E6, se carga su formulas propiedad y se escribe en la consola. La formulas propiedad de un rango especifica las fórmulas para las celdas del rango que contienen fórmulas y los valores sin procesar de las celdas del rango que no contienen fórmulas.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    let range = sheet.getRange("B2:E6");
    range.load("formulas");
    await context.sync();

    console.log(JSON.stringify(range.formulas, null, 4));
});

Datos en el rango (los valores de la columna E son el resultado de las fórmulas)

Datos en Excel después de establecer fórmulas de celda.

range.formulas (como se registró en la consola mediante el ejemplo de código anterior)

[
    [
        "Product",
        "Qty",
        "Unit Price",
        "Total Price"
    ],
    [
        "Almonds",
        2,
        7.5,
        "=C3 * D3"
    ],
    [
        "Coffee",
        1,
        34.5,
        "=C4 * D4"
    ],
    [
        "Chocolate",
        5,
        9.56,
        "=C5 * D5"
    ],
    [
        "",
        "",
        "",
        "=SUM(E3:E5)"
    ]
]

Vea también