整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

使用宏在电子表格中隐藏选择的特定行

使用宏在电子表格中隐藏选择的特定行

用电子表格的过程中,有时我们需要将某些行隐藏起来,这样在操作规模比较大的数据块时能更加方便。在本文中,我们将向您展示如何使用一个小而精巧的 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 的,这就确保了其灵活性,您可轻松根据自己的需求进行定制。

我们强烈建议您上手试试,制作自己的宏。欢迎随时提问,也欢迎与我们分享您的想法。我们已做好与您探讨和合作的准备。祝您的探索之旅一帆风顺!

平常的样式排版中,我们经常遇到将某个模块隐藏,下面我整理了一下隐藏元素的多种方法以及对比(有的占据空间,有的不占据空间。有的可以点击,有的不能点击。):

( 一 ) display: none;

特点:元素不可见,不占据空间,无法响应点击事件。

.hide{
 display: none; 
}

( 二 ) opacity: 0; ( IE8以下版本:filter:Alpha(opacity=50) )

特点:改变元素透明度,元素不可见,占据页面空间,可以响应点击事件。

.hide{
 opacity: 0;
 filter:Alpha(opacity=0); 
}

( 三 ) visibility: hidden;

特点:元素不可见,占据页面空间,无法响应点击事件。


.hide{
 visibility: hidden;
}

( 四 ) transform: scale(0);

( 1 ) zoom: 0.1; transform: scale(0);

特点:元素不可见,IE 6 7 9 不占据页面空间,IE8 谷歌 火狐 欧朋 等浏览器占据空间,无法响应点击事件。


.hide{
 zoom: 0.1;
 transform: scale(0);
 -webkit-transform: scale(0);
 -moz-transform: scale(0);
 -ms-transform: scale(0);
 -o-transform: scale(0); 
}

( 2 ) position: absolute; zoom: 0.1; transform: scale(0);

特点:元素不可见,不占据页面空间,无法响应点击事件。


.hide{
 position: absolute;
 zoom: 0.1;
 transform: scale(0);
 -webkit-transform: scale(0);
 -moz-transform: scale(0);
 -ms-transform: scale(0);
 -o-transform: scale(0); 
}

( 五 ) width: 0; height: 0; 配合overflow: hidden;

特点:元素不可见,不占据页面空间,无法响应点击事件。但 padding值 和 margin值 依然存在,需要将内外边距都调整为0。

.hide{
 display: inline-block;
 width: 0;
 height: 0;
 padding: 0;
 margin: 0;
 overflow: hidden; 
}

( 六 ) position: absolute; left: -200%; 或者 top: -200%;等,父级需要相对定位,这种left top值可以根据具体的实际情况去定义

特点:元素不可见,不占据页面空间,无法响应点击事件。


. father{
 position: relative;
 overflow: hidden;
}
.hide{
 position: absolute;
 left: -200%;//或top: -200%; 
}

( 七 ) clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px)

特点:元素不可见,占据页面空间,无法响应点击事件。


.hide{
 float: left;
 width: 150px;
 margin: 20px;
 clip-path: polygon(0px 0px, 0px 0px, 0px 0px, 0px 0px); 
}

( 八 ) margin: top | right | bottom | left ;父级添加overflow: hidden; (margin的值 一定要小于(子级的宽度加上边距的总和的负数))

特点:元素不可见,不占据页面空间,无法响应点击事件。


.father{
 width: 400px;
 height: 400px;
 overflow: hidden;
}
.hide{
 display: inline-block;
 width: 200px;
 height: 200px;
 margin-left: -200px;
}

以上就是几种隐藏元素的方法,我在以前的面试中,也碰到了面试官提出的一些关于隐藏元素css的对比,查阅了一些资料,做了以下整理:

( 一 ) display: none 和 visibility: hidden 的区别

1. 占据页面空间( display: none 将元素隐藏后,在页面是是不占有空间位置的,而visibility: hidden 将元素隐藏后,还保留着元素大小的空间位置 ) ;

2. display: none 影响了 reflow和repaint(回流与重绘),而visibility: hidden并没有影响

3. 某个模块添加了display: none; 它下面的任何子级都会被隐藏,而添加了visibility: hidden,子级一旦有添加visibility: visible的css,该子级将不会被隐藏。

( 二 ) display: none 和 opacity: 0的区别

1. 占据页面空间( display: none 将元素隐藏后,在页面是是不占有空间位置的,而opacity: 0 只是改变了元素的透明度将其隐藏,还保留着元素大小的空间位置 ) ;

2. display: none 不会被子类继承,但是子类一样不会显示。 opacity: 0 会被子类继承,但不能像visibility的属性一样,给子类添加opacity:1,并不能将子类显示。

3. css3 transition 属性对display:none 并无效果,但对opacity 则有效果。(附加一句,对visibility: hidden也无效果)

xcel表格中不需要显示的行或列,我们都是隐藏起来,需要时再取消隐藏。

表格中是这样设置隐藏的:

是不是比隐藏更方便。它是使用了Excel中的组合功能( 数据 - 创建组)。如下图所示:

组合功能创建有2种方式:

手工创建:选取明细列(汇总列不选),数据 - 创建组

自动创建:选取整个表格 - 自动创建分级显示。需要注意的是,汇总的行一定要有公式引用明细的行或列,如:

G3=SUM(C3:F3)

C3=SUM(C4:C8)

恒企六大会计神器护航

1、智能考试系统 ;2、大数据学习系统

3、会答APP系统; 4、线上直播平台

5、平台实训系统; 6、报税实训系统

恒企zuixin课程免费试听

申请方式:微信shhengqi回复“我要试听+姓名+电话+地区”即可

你可以先测试下你适不适合从事会计工作

http://m.hengqijy.com/Test.html?hqtg_gyh-mt_hqtg

温馨贴士:为不影响你的学业,来校时请先电话或QQ咨询,方便我校安排相关的课程咨询老师为你解答