Приложения для Office 365 — возврат выделенного текста со стилем и форматированием

Я создал надстройку для Office365 (Word, Excel и Powerpoint) и хочу получить выделенный текст внутри своего приложения с новыми строками и стилем.

Я использую следующий код для этого

function getSelectedData(hasSelectionCallback, noSelectionCallback) {

var type = Office.CoercionType.Text;

Office.context.document.getSelectedDataAsync(type,
{
valueFormat: "formatted", filterType: "all"
},
function (asyncResult) {
var error = asyncResult.error;
if (asyncResult.status === Office.AsyncResultStatus.Failed)
{
console.log(error.name + ": " + error.message);
}
else {
// Get selected data.

}
});
}

Я пробовал со всеми типами принуждения, но ни один из них не делает то, что мне действительно нужно.

Например, я хочу проанализировать выбранные данные, чтобы узнать, где находятся новые строки.

На данный момент он возвращает только обычный текст без форматирования или стиля.

Буду признателен за ответ по моей проблеме.

Благодарю вас!


person Nitan Alin    schedule 21.04.2016    source источник


Ответы (2)


Это интересный вопрос. Быстрый ответ на это заключается в том, что необязательный параметр valueFormat метода getSelectedDataAsync равен

  1. Поддерживается только в Excel (Word и PPT игнорируют этот параметр)
  2. Он не предназначен для получения фактического стиля выделения (и под этим я подразумеваю, например, цвет шрифта, полужирный шрифт, курсив и т. д.). Назначение этого параметра больше для форматирования значения. Так, например, если в un excel у вас есть столбец валюты со значением «1000,00 долларов», неформатированное значение будет 1000,00, а отформатированное «1000,00 долларов». Аналогичное поведение вы увидите с датами и другими форматированными значениями.

Я рекомендую вам попробовать новый API Word и Excel, чтобы получить информацию о форматировании.

ознакомьтесь с примером для Word, чтобы узнать, как получить детали форматирования выбора, а также определенного абзаца.

также проверьте это для форматирования диапазона в Excel.

Надеюсь это поможет!

person Juan Balmori    schedule 21.04.2016

В Word есть приведение OpenXML (Office.CoercionType.Ooxml), которое даст вам все, что нужно знать о выборе. OOXML несколько многословен, но настолько подробен, насколько вы можете пожелать.

Я считаю, что для Excel и PowerPoint все, что вы можете получить, это обычный текст, а не информацию о форматировании (хотя я немного удивлен, что вы не получаете информацию о новой строке, похоже, что это часть текстового содержимого, а не форматирование... )

Надеюсь это поможет!

person Michael Zlatkovsky - Microsoft    schedule 21.04.2016
comment
привет Майкл, я все еще не могу найти новые строки в коде. OOXML возвращает весь документ, а не только выделение - person Nitan Alin; 30.05.2016