Office365 Office 365应用程序-返回带有样式和格式的选定文本

Office365 Office 365应用程序-返回带有样式和格式的选定文本,office365,office-js,type-coercion,Office365,Office Js,Type Coercion,我为Office365创建了一个外接程序(Word、Excel和Powerpoint),我想在我的应用程序中获取所选文本,并添加新行和样式 我使用下面的代码来实现这一点 function getSelectedData(hasSelectionCallback, noSelectionCallback) { var type = Office.CoercionType.Text; Office.context.document.getSelectedDataAsync(type, { val

我为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.

}
});
}
我尝试过各种形式的胁迫,但没有一种能满足我的实际需要

例如,我想解析所选数据,以便知道新行在哪里

目前,它只返回纯文本,没有格式或样式

如果您能对我的问题做出答复,我将不胜感激


谢谢大家!

在Word中,有OpenXML(
Office.impressionType.Ooxml
)强制,它将为您提供有关选择的所有信息。OOXML有点冗长,但尽可能详细

对于Excel和PowerPoint,我相信你能得到的只是纯文本,而不是任何格式信息(尽管我有点惊讶你没有得到换行信息,这似乎是文本内容的一部分,而不是格式…)


希望这有帮助

这是一个有趣的问题。快速回答是getSelectedDataAsync方法的valueFormat可选参数为

  • 仅在Excel中受支持(Word和PPT忽略此参数)
  • 它不是为了得到选择的实际样式(我指的是字体颜色、粗体、斜体等等)。此参数的用途更多地是用于值格式设置。因此,例如,如果您有一个带有“$1000.00”值的货币列,则未格式化的值将为1000.00,格式化的值将为“$1000.00”。您将看到日期和其他格式化值的类似行为
  • 我鼓励您尝试使用新的Word和Excel API来获取格式信息

    在这里查看有关如何获取特定段落的选择格式详细信息的链接

    也可以在Excel中查看此项


    希望这有帮助

    你好,Michael,我仍然找不到代码中的新行。OOXML返回整个文档,而不仅仅是所选内容