Javascript API для Office: как вручную запустить функцию автоформатирования MS Office?

Фон:

Я создаю веб-приложение в MS Excel, используя API Javascript для Office. Одна функция, которую я добавляю в приложение, - это возможность редактировать данные из приложения. Эти данные отправляются в документ Excel через setDataAsync функция в API. Это работает для простого текста.

У меня странная проблема с адресами электронной почты. Когда я вручную ввожу адрес электронной почты в ячейку, Excel автоматически форматирует его в mailto: гиперссылка. Этого не происходит, когда я устанавливаю данные с помощью Javascript. Мне нужно найти способ заставить Excel автоматически его отформатировать.

У меня была альтернативная идея - предварительно отформатировать данные в ссылку, используя:

=HYPERLINK("mailto:person@website.com","person@website.com")

Однако, когда кто-то смотрит в ячейку вручную, он увидит эту длинную формулу, а не только адрес. И читать его обратно в веб-приложение будет кошмаром.

Текущий код:

function writeData(bindingID,newData,row,col) {
    var newTable = new Office.TableData();
    newTable.rows = [[newData]];
    Office.select("bindings#"+bindingID).setDataAsync(newTable, {coercionType: "table", startRow: row, startColumn: col}, function (asyncResult) {
        if (asyncResult.status == "failed") {
            display('Error: ' + asyncResult.error.message);
        }
    });
}

Вопрос:

Можно ли заставить Excel автоформатировать?

1 ответ

Решение

Ответ: это не может быть сделано.

Я задал этот вопрос также на форумах MS, и получил ответ, который я хотел бы опубликовать здесь на случай, если у кого-то еще возникнет такая же проблема.

Боюсь, что после тестирования и исследования в JavaScript для Office не будет метода или свойства для автоматической установки ссылки mailto для текста ячеек после проверки.

Нам нужно переформатировать ячейки вручную после вставки с помощью метода SetDataAsync.

Луна Чжан - MSFT (Источник)

Другие вопросы по тегам