新建自定义视图
在视图菜单下的自定义视图按钮, 点击可以新增自定义视图。
点击之后会弹出一个添加视图的确认框, 需要输入视图的名称, 同时可以对视图进行简单的设置。
新建完之后,再次点击自定义视图, 会显示如下的弹框。 选中要展示的自定义视图,点击显示即可。
自定义视图的数据结构
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 中的数据会被清除只保留一个默认的。 在自定义视图中, 你所有新增的视图在关闭窗口之后都是会保留的。