Compartir a través de


Trabajar con fechas mediante la API de JavaScript de Excel y el complemento de Moment-MSDate

En este artículo se proporcionan ejemplos de código que muestran cómo trabajar con fechas mediante la API de JavaScript de Excel y el complemento Moment-MSDate. Para obtener la lista completa de propiedades y métodos que admite el Range objeto, vea la 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.

Uso del complemento Moment-MSDate para trabajar con fechas

La biblioteca de JavaScript Moment proporciona una forma cómoda para usar fechas y marcas de tiempo. El complemento Moment-MSDate convierte el formato de momentos en uno preferible para Excel. Este es el mismo formato que la función NOW devuelve.

En el código siguiente se muestra cómo establecer el intervalo en B4 en la marca de tiempo de un momento.

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

    let now = Date.now();
    let nowMoment = moment(now);
    let nowMS = nowMoment.toOADate();

    let dateRange = sheet.getRange("B4");
    dateRange.values = [[nowMS]];

    dateRange.numberFormat = [["[$-409]m/d/yy h:mm AM/PM;@"]];

    await context.sync();
});

En el ejemplo de código siguiente se muestra una técnica similar para obtener la fecha de vuelta de la celda y convertirla a un Moment formato u otro.

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

    let dateRange = sheet.getRange("B4");
    dateRange.load("values");

    await context.sync();

    let nowMS = dateRange.values[0][0];

    // Log the date as a moment.
    let nowMoment = moment.fromOADate(nowMS);
    console.log(`get (moment): ${JSON.stringify(nowMoment)}`);

    // Log the date as a UNIX-style timestamp.
    let now = nowMoment.unix();
    console.log(`get (timestamp): ${now}`);
});

El complemento tiene que dar formato a los intervalos para mostrar las fechas en un formato más legible para el usuario. Por ejemplo, "[$-409]m/d/yy h:mm AM/PM;@" muestra "12/3/18 3:57 PM". Para obtener más información sobre los formatos de número de fecha y hora, vea "Directrices para formatos de fecha y hora" en el artículo Directrices de revisión para personalizar un formato de número .

Vea también