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 中的数据会被清除只保留一个默认的。 在自定义视图中, 你所有新增的视图在关闭窗口之后都是会保留的。

相关推荐
烬羽20 分钟前
后端返回的 JSON 字符串,浏览器怎么"看懂"的?——Ajax 全链路拆解
javascript
tedcloud12327 分钟前
taste-skill部署教程:打造个性化AI推荐工作流
服务器·前端·人工智能·系统架构·edge
xinhuanjieyi41 分钟前
html修复游戏种太阳错误
前端·游戏·html
椰椰椰耶1 小时前
[SpringCloud][14]OpenFeign参数传递方法
后端·spring·spring cloud
onething3651 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 3 —— 消息表设计 + 级联删除 + 事务管理
人工智能·后端
半个落月1 小时前
一个新手用 Bun + Axios 调通 DeepSeek API 的实践记录
javascript
不好听6131 小时前
深入理解链表:线性数据结构的另一面
javascript·数据结构
荣江1 小时前
Hermes Agent 代码仓库打包工具使用指南(repomix-rs 高性能版)
后端
王某某人1 小时前
LangChain4j 入门:Java 程序员的第一个 AI 对话程序
人工智能·后端
林希_Rachel_傻希希1 小时前
学React治好了我的焦虑症,1小时速通React 前20分钟。
前端·javascript·面试