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 (Источник)