如何使用Office.js获取单元格的格式

时间:2016-06-01 14:31:55

标签: javascript excel office-js

我正在开发一个Excel加载项,它提取单元格A1的文本包括其格式并在其自己的区域中显示文本。所以add in包含了这个(见下面的截图): •区域显示格式化文本 •按钮开始提取 Please Click to view image

bellow是我用来获取文本的代码

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);
            }
        });
}

以上代码正在使用" CoercionType" as" Text" 。我已经尝试了很多方法来找到解决方案,以便将文本格式化为在Sheet Cell中编写。我得到的答案只是平面文字:(请帮我解决问题

3 个答案:

答案 0 :(得分:0)

您应该查看的对象名为RangeFont,可以作为Range.format.font访问。代码:

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);
});

答案 1 :(得分:0)

要添加到Michael Saunder的答案:虽然您可以使用myRange.format.font.load(['bold','color','italic','name','size','underline']),但只会在格式,单元格和格式中保持字体,粗体,斜体等等。在myRange对象表示的整个范围内。由于您只是在寻找单个单元格的格式,因此后者听起来并不适用于您(它只是一个单元格),但您显示的示例图像单元格内的不同单词具有不同的粗体,斜体,颜色等。使用当前的API,您将 无法获取此信息。

听起来你要问的是某种HTML或类似图像的单元格表示。我鼓励您将此作为我们的UserVoice(https://officespdev.uservoice.com/)的建议,以及您需要的用例的实际描述。

~Michael Zlatkovsky,Office Extensibility团队的开发人员,MSFT

答案 2 :(得分:0)

对于将来的用户-Range.getCellProperties()加载单元属性的二维数组