当我尝试更改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";
答案 0 :(得分:2)
您获得的错误实际上是正确的。 "填写"不是原始属性 - 它是一个API对象(又名"导航属性")。对于您要执行的操作,您需要指定要修改的实际属性 - 在这种情况下,颜色:
range.format.fill.color = "red"
有关原语与API对象属性的说明,请参阅"标量与导航属性 - 以及它们对加载行为的影响"在http://buildingofficeaddins.com/loading-properties/