range.format.fill被认为是只读的,但应该是可读写的

时间:2017-01-04 21:20:24

标签: excel office-js

当我尝试更改range.format.fill属性时,JavaScript会引发一个错误,指出我无法在严格模式下更改只读属性值。也许格式化(或填充)对象在内部声明为只读属性,应该是读/写?当我尝试使用range.clear时,我有成功,很难,这就是为什么我认为错误是格式或填充,而不是范围。

代码是:

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded
    Office.initialize = function (reason) {
        $(document).ready(function () {
            app.initialize();

            $('#paint-range').click(paintRange);
        });
    };

    function paintRange() {
        Excel.run(function (ctx) {
            var range = ctx.workbook.names.getItem("Countries").getRange();
            range.format.fill = "red";

            return ctx.sync();
        }).catch(function (error) {
            app.showNotification("Error", error);
        })
    }

})();

我收到错误:

range.format.fill = "red";

1 个答案:

答案 0 :(得分:2)

您获得的错误实际上是正确的。 "填写"不是原始属性 - 它是一个API对象(又名"导航属性")。对于您要执行的操作,您需要指定要修改的实际属性 - 在这种情况下,颜色

range.format.fill.color = "red"

有关原语与API对象属性的说明,请参阅"标量与导航属性 - 以及它们对加载行为的影响"在http://buildingofficeaddins.com/loading-properties/