Javascript 如何使用Office.js获取单元格格式
我正在开发一个Excel加载项,用于提取单元格A1的文本,包括其格式,并在其自己的区域中显示文本。因此,外接程序包含以下内容(请参见下面的屏幕截图): •显示格式化文本的区域 •启动提取的按钮 下面是我用来获取文本的代码Javascript 如何使用Office.js获取单元格格式,javascript,excel,office-js,Javascript,Excel,Office Js,我正在开发一个Excel加载项,用于提取单元格A1的文本,包括其格式,并在其自己的区域中显示文本。因此,外接程序包含以下内容(请参见下面的屏幕截图): •显示格式化文本的区域 •启动提取的按钮 下面是我用来获取文本的代码 function displaySelectedCells() { Office.context.document.getSelectedDataAsync(Office.CoercionType.Text, function (result) {
function displaySelectedCells() {
Office.context.document.getSelectedDataAsync(Office.CoercionType.Text,
function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
showNotification('The selected text is:', '"' + result.value + '"');
} else {
showNotification('Error', result.error.message);
}
});
}
上面的代码使用“强制类型”作为“文本”。我已经尝试了很多,以找到解决方案,使文本的格式写在一个表单元格。我得到的响应仅为平面文本:(请帮助我解决问题)您应该查看的对象被调用,它作为Range.format.font.Code访问:
Excel.run(function (ctx) {
var myRange = ctx.workbook.getSelectedRange();
var myFont = myRange.format.font;
myFont.load(['bold','color','italic','name','size','underline']);
myRange.load('values');
return ctx.sync().then(function() {
log(myFont.color);
log(myFont.bold);
log(myRange.values);
});
}).catch(function(error) {
log("Error: " + error);
});
添加到Michael Saunder的答案中:虽然您可以使用myRange.format.font.load(['bold','color','italic','name','size','underline')),如果单元格内的格式和myRange对象表示的整个范围内的格式一致,则只能获得字体、粗体、斜体等。由于您只查找单个单元格的格式,因此后者听起来不适用于您(它只是单个单元格),但示例图像显示单元格中的不同单词具有不同的粗体、斜体、颜色等。使用当前的API,您将无法获取此信息 听起来你所问的似乎是某种HTML或类似图像的单元格表示形式。我鼓励你将此作为对我们的UserVoice()的建议,以及对现实世界的描述,以及你需要它的用例
~Michael Zlatkovsky,微软办公扩展团队的开发人员,面向未来用户-加载一个二维单元格属性数组,感谢您的快速响应。是否可以使用openXML javascript api读取我需要的数据,如上所述?关于openXML:它仅适用于javascript api中的Word。因此,我恐怕不行。