Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Office.js获取单元格格式_Javascript_Excel_Office Js - Fatal编程技术网

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

Javascript 如何使用Office.js获取单元格格式,javascript,excel,office-js,Javascript,Excel,Office Js,我正在开发一个Excel加载项,用于提取单元格A1的文本,包括其格式,并在其自己的区域中显示文本。因此,外接程序包含以下内容(请参见下面的屏幕截图): •显示格式化文本的区域 •启动提取的按钮 下面是我用来获取文本的代码 function displaySelectedCells() { Office.context.document.getSelectedDataAsync(Office.CoercionType.Text, function (result) {

我正在开发一个Excel加载项,用于提取单元格A1的文本,包括其格式,并在其自己的区域中显示文本。因此,外接程序包含以下内容(请参见下面的屏幕截图): •显示格式化文本的区域 •启动提取的按钮

下面是我用来获取文本的代码

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。因此,我恐怕不行。