workbook 中常用属性之 customWorkbookViews

新建自定义视图

在视图菜单下的自定义视图按钮, 点击可以新增自定义视图。

点击之后会弹出一个添加视图的确认框, 需要输入视图的名称, 同时可以对视图进行简单的设置。

新建完之后,再次点击自定义视图, 会显示如下的弹框。 选中要展示的自定义视图,点击显示即可。

自定义视图的数据结构

workbook.xml

xml 复制代码
<customWorkbookViews>
    <customWorkbookView name="test" guid="{26ADEF9F-F3BF-104A-9074-B01F9CD9839B}" xWindow="315" yWindow="263" windowWidth="1802" windowHeight="936" activeSheetId="1"/>
</customWorkbookViews>

sheet1.xml

xml 复制代码
<customSheetViews>
    <customSheetView guid="{622782F9-2179-0A40-8982-4D3E81C07BDC}" filter="1" showAutoFilter="1">
      <selection activeCell="B2" sqref="B2"/>
      <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
      <autoFilter ref="D3:G14" xr:uid="{49FBCA9A-6900-3447-958F-3EEB77EC5F75}">
        <filterColumn colId="3">
          <filters blank="1">
            <filter val="范德萨发的"/>
          </filters>
        </filterColumn>
      </autoFilter>
    </customSheetView>
  </customSheetViews>

如果看自定义视图的属性的话, 会发现大部分的数据跟 workbookView 是一样的。 关于 workbookView 的介绍可以查看这篇文章: juejin.cn/post/726629...

常用属性介绍

OOXML 里面定义的 customWorkbookView 的属性, 这里会介绍几个常用属性。

像 xWindow、yWindow 等这些属性, 在之前的 bookView 的文章中已经有了介绍, 这里不再赘述。 和 bookView 不同的是:

name

自定义视图的名称,用户后续可以选中视图名称来切换视图。

guid

唯一ID, 这个 ID 和 sheet1.xml 里面的 customSheetView 的 guid 一致。

includeHiddenRowCol

这个属性是一个 boolean 值, 默认为 true。 也就是上面新建视图时的"隐藏行、列及筛选设置"。 如果把这个勾选去掉的话:

sheet1.xml

xml 复制代码
<customSheetView guid="{D4576626-4D54-6F4B-876C-F7D79DE16676}">
      <selection activeCell="D3" sqref="D3:I19"/>
</customSheetView>

worksheet 里面的 customSheetView 则不会有筛选的内容。 这里说的筛选的内容主要是被筛选隐藏的行列、筛选内容,条件, 当你打开这个视图的时候, 筛选和筛选条件就会展示你创建视图时候的状态。 去掉勾选不表示不能使用筛选,而是和原表共用的一个筛选及筛选条件,原表更新的时候, 视图也会更新。

workbookView 和 customWorkbookView 的区别

workbookView 在 Excel 的实现中, 是一个自定义的窗口。 也就是相当于你可以同时打开一个 Excel 文件两次, 两个窗口是独立的, 并且关闭窗口之后, ooxml 中的数据会被清除只保留一个默认的。 在自定义视图中, 你所有新增的视图在关闭窗口之后都是会保留的。

相关推荐
excel1 分钟前
webpack 核心编译器 十四 节
前端
excel8 分钟前
webpack 核心编译器 十三 节
前端
腾讯TNTWeb前端团队7 小时前
helux v5 发布了,像pinia一样优雅地管理你的react状态吧
前端·javascript·react.js
Asthenia04129 小时前
Spring AOP 和 Aware:在Bean实例化后-调用BeanPostProcessor开始工作!在初始化方法执行之前!
后端
Asthenia041210 小时前
什么是消除直接左递归 - 编译原理解析
后端
Asthenia041210 小时前
什么是自上而下分析 - 编译原理剖析
后端
Asthenia041210 小时前
什么是语法分析 - 编译原理基础
后端
Asthenia041210 小时前
理解词法分析与LEX:编译器的守门人
后端
uhakadotcom10 小时前
视频直播与视频点播:基础知识与应用场景
后端·面试·架构