借助 ONLYOFFICE 宏在电子表格中隐藏选择的特定行

使用电子表格的过程中,有时我们需要将某些行隐藏起来,这样在操作规模比较大的数据块时能更加方便。在本文中,我们将向您展示如何使用一个小而精巧的 ONLYOFFICE 宏来实现此功能。

为此,我们将使用 SetHidden 方法。此方法其实已在另一个 ONLYOFFICE 宏(可用于取消隐藏电子表格中的所有行和列)中使用过一次。

宏代码如下:

var activeSheet = Api.ActiveSheet;
var indexRowMax = 1048576;
var n = 1;
    for (let i = 0; i < indexRowMax; i++) {
        activeSheet.GetRows(n).SetHidden(false);
        n++;
    }

如需取消隐藏文档中的所有行,我们需要将 indexRowMax 变量设置为最大行数。然后通过 for loop 循环遍历整个电子表格,接着将 SetHidden 方法的属性值更改为 FALSE,以此取消对于行的隐藏。

构建“隐藏所选”宏

相信您也猜到了,SetHidden 方法的作用多种多样。不仅可用于取消隐藏行,还可用于隐藏行。不过,如果我们想要隐藏一些特定的行,那么 for loop 循环可能并不是最好的选择。此时我们会建议使用 ForEach 函数来对目标文档中的已选部分进行遍历。这将有助于根据单元格值来隐藏所选内容中的特定行。

所以,首先我们需要获取活动工作表和已选择部分:

var activeSheet = Api.ActiveSheet;
var selection = activeSheet.Selection;

然后添加 ForEach 函数来遍历所选部分中的所有单元格并获取值:

selection.ForEach(function (range) { 
    var value = range.GetValue(); 
} 

接着我们添加一条 if 语句,用于获取包含小于 35 的值的行索引。我们会将此索引存储在变量中,并将其用作设置行隐藏状态的参数:

selection.ForEach(function (range) { 
    var value = range.GetValue();  
      if (value < "35") {   
    var row  = range.GetRow();
      range.GetRows(row[range]).SetHidden(true);
    }

完整的宏代码如下:

(function()
{
var activeSheet = Api.ActiveSheet;
var selection = activeSheet.Selection;
selection.ForEach(function (range) { 
    var value = range.GetValue();  
      if (value < "35") {   
    var row  = range.GetRow();
      range.GetRows(row[range]).SetHidden(true);
    }
});
})();

现在让我们来运行一下宏,看看效果如何!

 希望这里的宏能够帮助您更便捷地对电子表格数据进行管理。这里的宏只是借助我们的 API 方法可以实现的众多功能之一。我们的宏是基于 JavaScript 的,这就确保了其灵活性,您可轻松根据自己的需求进行定制。我们强烈建议您上手试试,制作自己的宏。

欢迎随时提问,也欢迎与我们分享您的想法。我们已做好与您探讨和合作的准备。祝您的探索之旅一帆风顺!

相关链接

ONLYOFFICE 宏 API 文件

使用 ONLYOFFICE 宏监测空气质量数据

如何为 ONLYOFFICE 文档(Docs)创建宏

GitHub 上的 ONLYOFFICE

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值