在office.js中设置excel的条件格式

在office.js中设置excel的条件格式,office.js,javascript,excel,ms-office,office-js,Office.js,Javascript,Excel,Ms Office,Office Js,我需要一种在外接程序中设置条件格式的方法 目前,我认为可以使用VBA根据外接程序设置的单元格值进行设置,但如果能够直接在office.js中进行设置,那就太好了 我正在寻找一些创造性的解决方案,直到微软在Advin中实现这一点。 在这一点上,我们还没有支持通过Office JS设置条件格式,但是我们将考虑增加对这一点的支持,以便我们对API进行进一步的更新。 谢谢, Office扩展性团队的软件工程师Philip正如Philip所说,条件格式是开箱即用的(从ExcelApi 1.2开始)。就创造

我需要一种在外接程序中设置条件格式的方法

目前,我认为可以使用VBA根据外接程序设置的单元格值进行设置,但如果能够直接在office.js中进行设置,那就太好了


我正在寻找一些创造性的解决方案,直到微软在Advin中实现这一点。

在这一点上,我们还没有支持通过Office JS设置条件格式,但是我们将考虑增加对这一点的支持,以便我们对API进行进一步的更新。 谢谢,
Office扩展性团队的软件工程师Philip

正如Philip所说,条件格式是开箱即用的(从ExcelApi 1.2开始)。就创造性解决方案而言,根据范围的大小,您可以这样做

基本思想是在所需范围内创建绑定。然后添加一个数据更改侦听器,并在每次发生更改时重新应用格式设置

要创建绑定,可以执行以下简单操作:

Office.context.document.bindings.addFromPromptAsync(Office.BindingType.Matrix,{id:'MyBinding'});
现在是有趣的部分,事件:

var绑定;
Office.context.document.bindings.getByIdAsync('MyBinding',函数(结果){
如果(result.status==“成功”){
binding=result.value;
binding.addHandlerAsync(Office.EventType.BindingDataChanged,formatData);
}否则{
console.log(result.error.message);
}
});
函数formatData(){
//首先,禁用以前创建的绑定,否则
//设置格式也将触发数据更改事件。
binding.removeHandlerAsync(Office.EventType.BindingDataChanged);
Excel.run(函数(ctx){
var range=ctx.workbook.bindings.getItem('MyBinding').getRange();
荷载范围(“值”);
返回ctx.sync(){
对于(变量行=0;行
希望这有助于作为一个临时解决办法

~Michael Zlatkovsky,微软办公扩展团队的开发人员基于您(以及许多其他开发人员的反馈),我们现在宣布在2017年版上预览Excel API 1.6,其中包括对条件格式的支持。支持Excel API 1.6的Office 365 Insider版本将于本月晚些时候提供


我构建了一个片段,向您展示了这些API的基础知识,您可以在我们的新脚本实验室()中查看。只需安装Script Lab加载项,然后在导航菜单中选择“导入”并导入以下要点:

感谢您的回复,Mike,很遗憾,这对我不起作用,因为我需要在工作簿中设置条件格式,这样它就可以在没有加载项的情况下工作。请添加条件格式。无法将绑定更改用于大范围更改跟踪。Excel API 1.5计划使用条件格式。您可以在此处查看设计文档:。在该文档中,它被列为1.4,但它已被移动到1.5(除非它最终是1.6,只是为了让我们更快地发布1.5;但我知道绝大多数条件格式功能已经编码)@CloudXu,请参见我的评论上面的条件格式代码示例: