如何使用 office.js 在 Word 中格式化 table 的当前单元格
How do I get the formatting the Current cell of the table in Word using office.js
我在 excel 中问了一个关于 的问题。我又遇到了同样的问题,但这次是关于 ms-word,我有可能获得在 word 应用程序中创建的 table 单元格中的格式化文本。
尽管我能够将所选文本设为 html,这为我提供了我需要的样式
Office.context.document.getSelectedDataAsync(Office.CoercionType.Html,
function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
showNotification('The selected text is:', '"' + result.value + '"');
} else {
showNotification('Error:', result.error.message);
}
});
我只想要当前单元格格式的文本
谢谢!
普拉迪普问得好。为了获得单元格格式,您需要使用当前处于预览状态的 Word 1.3 API。
您可以查看如何试用 1.3 Apis here。 (请注意,您需要使用该页面上公开的预览 Office.js CDN!)
查看所有新内容 here.
现在,一旦您准备好尝试 1.3,以下代码将为您提供单元格格式设置信息。一般来说,代码的作用是
- 验证选择是否在 table 中的单元格内。
- 验证完成后,我们将获得单元格的 'body'。 Body 对象包含 FONT 对象,它将包含您需要的所有格式 properties。(即颜色、字体名称、粗体、斜体等。您还可以使用 getHtml( ) 函数。
在下面找到执行此操作的代码。请注意,此代码将 return 您应用到整个单元格中的格式。如果你想更进一步,也就是逐字获取格式信息,那么你需要在正文对象上应用 split 方法,这样你就可以遍历并获取每个词的格式信息returned 范围。
希望这会有所帮助!编码愉快!!
function getFormattedText() {
Word.run(function (context) {
//step 1: lets get the selection's range. and find out if its within a table cell.....
var mySelection = context.document.getSelection().parentTableCell;
context.load(mySelection);
return context.sync()
.then(function () {
if (mySelection.isNull == true) {
//selection is not within a cell.....
console.log("selection not in a header");
}
else {
// the selection is inside a cell! lets get the content....
var body = mySelection.body;
context.load(body, { expand: 'font' });
return context.sync()
.then(function () {
console.log(body.font.name + " " + body.font.color); // at this point all the font properties are available, bold, italic color.. etc...
})
.catch(function (e) {
console.log(e.message);
});
}
})
.catch(function (e) {
console.log(e.message);
});
});
}
我在 excel 中问了一个关于
尽管我能够将所选文本设为 html,这为我提供了我需要的样式
Office.context.document.getSelectedDataAsync(Office.CoercionType.Html,
function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
showNotification('The selected text is:', '"' + result.value + '"');
} else {
showNotification('Error:', result.error.message);
}
});
我只想要当前单元格格式的文本 谢谢!
普拉迪普问得好。为了获得单元格格式,您需要使用当前处于预览状态的 Word 1.3 API。 您可以查看如何试用 1.3 Apis here。 (请注意,您需要使用该页面上公开的预览 Office.js CDN!) 查看所有新内容 here.
现在,一旦您准备好尝试 1.3,以下代码将为您提供单元格格式设置信息。一般来说,代码的作用是
- 验证选择是否在 table 中的单元格内。
- 验证完成后,我们将获得单元格的 'body'。 Body 对象包含 FONT 对象,它将包含您需要的所有格式 properties。(即颜色、字体名称、粗体、斜体等。您还可以使用 getHtml( ) 函数。
在下面找到执行此操作的代码。请注意,此代码将 return 您应用到整个单元格中的格式。如果你想更进一步,也就是逐字获取格式信息,那么你需要在正文对象上应用 split 方法,这样你就可以遍历并获取每个词的格式信息returned 范围。 希望这会有所帮助!编码愉快!!
function getFormattedText() {
Word.run(function (context) {
//step 1: lets get the selection's range. and find out if its within a table cell.....
var mySelection = context.document.getSelection().parentTableCell;
context.load(mySelection);
return context.sync()
.then(function () {
if (mySelection.isNull == true) {
//selection is not within a cell.....
console.log("selection not in a header");
}
else {
// the selection is inside a cell! lets get the content....
var body = mySelection.body;
context.load(body, { expand: 'font' });
return context.sync()
.then(function () {
console.log(body.font.name + " " + body.font.color); // at this point all the font properties are available, bold, italic color.. etc...
})
.catch(function (e) {
console.log(e.message);
});
}
})
.catch(function (e) {
console.log(e.message);
});
});
}