Excel JS — получить формат номера диапазона

#reactjs #office-js

#reactjs #office-js

Вопрос:

Я использую API Excel / Office JS в React. Данные перемещаются в диапазоны Excel. Я пытаюсь выполнить следующую логику:

  • Проверьте, является ли форматирование диапазона / ячейки общим
  • Если это общий формат, установите формат в определенный формат даты и времени
  • Если это НЕ общий формат, не меняйте форматирование

Кажется достаточно простым, но, к сожалению, я не могу получить существующий формат из Excel. Он продолжает говорить мне, что это общее, хотя это не так. Проверьте приведенный ниже код. Есть идеи?

 Excel.run(async function (context) {
        let binding = context.workbook.bindings.getItemOrNullObject(queryId);

        await context.sync();

        if (!binding.isNullObject) {
            let bRange = binding.getRange();
            bRange.load('rowCount');
            bRange.load('columnCount');

            await context.sync();

            let dateRange = null;

            if (transpose) {
                dateRange = bRange.getAbsoluteResizedRange(1, bRange.columnCount);
            } else {
                dateRange = bRange.getAbsoluteResizedRange(bRange.rowCount, 1);
            }

            dateRange.load('numberFormat');
            await context.sync();

            //dateRange.numberFormat[0] is ALWAYS General no matter what the format is
            if (dateRange.numberFormat[0] == 'General') {
               dateRange.numberFormat = 'yyyy-MM-dd HH:mm:ss';
            }
        }

        return context.sync();
    });
  

Комментарии:

1. Я не могу воспроизвести эту проблему в вашем коде (я не могу запустить ваш код напрямую в моей лаборатории скриптов, поэтому я модифицировал его, после моих изменений он работает здесь хорошо), не могли бы вы, пожалуйста, сохранить свой код в лаборатории скриптов? ссылаясь на эту статью? learn.microsoft.com/en-us/office/dev/add-ins/overview /…