Go Excelize API源码阅读SetSheetViewOptions示例解析

目录

一、Go-Excelize简介

二、 SetSheetViewOptions

一、Go-Excelize简介

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。

可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。

支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。

可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.15 或更高版本。

二、 SetSheetViewOptions func (f *File) SetSheetViewOptions(sheet string, viewIndex int, opts ...SheetViewOption) error

根据给定的工作表名称、视图索引和视图参数设置工作表视图属性,viewIndex 可以是负数,如果是这样,则向后计数(-1 代表最后一个视图)。

可选视图参数类型
DefaultGridColorbool
ShowFormulasbool
ShowGridLinesbool
ShowRowColHeadersbool
ShowZerosbool
RightToLeftbool
ShowRulerbool
Viewstring
TopLeftCellstring
ZoomScalefloat64

下面是一个该API的使用例子:

f := excelize.NewFile() const sheet = "Sheet1" if err := f.SetSheetViewOptions(sheet, 0, excelize.DefaultGridColor(false), excelize.ShowFormulas(true), excelize.ShowGridLines(true), excelize.ShowRowColHeaders(true), excelize.RightToLeft(false), excelize.ShowRuler(false), excelize.View("pageLayout"), excelize.TopLeftCell("C3"), excelize.ZoomScale(80), ); err != nil { fmt.Println(err) } var zoomScale ZoomScale fmt.Println("Default:") fmt.Println("- zoomScale: 80") if err := f.SetSheetViewOptions(sheet, 0, excelize.ZoomScale(500)); err != nil { fmt.Println(err) } if err := f.GetSheetViewOptions(sheet, 0, &zoomScale); err != nil { fmt.Println(err) } fmt.Println("Used out of range value:") fmt.Println("- zoomScale:", zoomScale) if err := f.SetSheetViewOptions(sheet, 0, excelize.ZoomScale(123)); err != nil { fmt.Println(err) } if err := f.GetSheetViewOptions(sheet, 0, &zoomScale); err != nil { fmt.Println(err) } fmt.Println("Used correct value:") fmt.Println("- zoomScale:", zoomScale)

其输出结果如下:

Default:
- zoomScale: 80
Used out of range value:
- zoomScale: 80
Used correct value:
- zoomScale: 123

废话少说,直接上源码:

func (f *File) SetSheetViewOptions(name string, viewIndex int, opts ...SheetViewOption) error { view, err := f.getSheetView(name, viewIndex) if err != nil { return err } for _, opt := range opts { opt.setSheetViewOption(view) } return nil }

先根据工作表视图的索引取工作表视图。

这个函数其实逻辑很简单,就是判断下标是不是合法的,然后直接返回就是的了,如果默认下标是合法的,那么都不需要这个函数了直接ws.SheetViews.SheetView[viewIndex].

然后再遍历不定长参数opts

for _, opt := range opts { opt.setSheetViewOption(view) }

opt都是SheetViewOption interface类型,其下有一个函数。

setSheetViewOption(view *xlsxSheetView)

此处我们使用的是这个函数....

逻辑都很简单,就是将传来的值处理成工作表视图属性能够设置的值。

然后直接赋值传递过去。

下面介绍一下这些参数的含义:

DefaultGridColor是一个SheetViewOption。它指定一个标志,指示使用应用程序应使用默认网格线颜色(取决于系统)。覆盖 colorId 中指定的任何颜色。

ShowFormulas是一个SheetViewOption。它指定一个标志,指示此工作表是否应显示公式。

ShowGridLines是一个SheetViewOption。它指定一个标志,指示此工作表是否应显示网格线。

ShowRowColHeaders是一个SheetViewOption。它指定一个标志,指示工作表是否应显示行标题和列标题。

ShowZeros是一个SheetViewOption。它指定一个标志,指示是否“在值为零的单元格中显示零”。当使用公式引用另一个空单元格时,当标志为 true 时,引用的值变为 0。默认设置为 true。

RightToLeft是一个SheetViewOption。它指定一个标志,指示工作表是否处于“从右到左”的显示模式。在此模式下,列 A 位于最右侧,列 B ;位于列 A 的左侧一列,依此类推。此外,单元格中的信息以从右到左的格式显示。

ShowRuler是一个SheetViewOption。它指定一个标志,指示此工作表应显示标尺。

View是一个 SheetViewOption。它指定一个标志,指示工作表的显示方式,默认情况下,它使用空字符串。

TopLeftCell是一个SheetViewOption。它指定左上角可见单元格的位置 右下窗格中左上角可见单元格的位置(从左到右模式时)。

ZoomScale是一个SheetViewOption。它为表示百分比值的当前视图指定窗口缩放放大倍率。此属性限制为介于 10 到 400 之间的值。

以上就是Go-Excelize API源码阅读SetSheetViewOptions示例解析的详细内容,更多关于Go-Excelize API源码阅读的资料请关注易知道(ezd.cc)其它相关文章!

推荐阅读

    电脑硬盘csgo凭空消失|csgo突然消失

    电脑硬盘csgo凭空消失|csgo突然消失,,1. csgo突然消失可能是系统出现卡顿,刷新一下重启试试2. csgo地图突然消失方法如下:1、在电脑中启动cs

    csgo参数设置|csgo怎么保存

    csgo参数设置|csgo怎么保存,,csgo怎么保存第一步下载csgo的官方版本。然后再下载一个5e对战平台,PS:5e的账号和csgo的账号不是一个账号。第

    aigo无线硬盘连电脑|aigo优盘连接手机

    aigo无线硬盘连电脑|aigo优盘连接手机,,1. aigo优盘连接手机不管是爱国者U盘还是其他的U盘,要导入华为手机的话,首先需要有一个转接头,一头插

    csgo高手快捷键|csgo快捷键指令

    csgo高手快捷键|csgo快捷键指令,,1. csgo快捷键指令反恐精英全球攻势游戏中,死亡竞赛的回合时间60分钟:mp_roundtime 60,休闲/竞技模式的每局

    aigo电脑主机系统重启|csgo重启电脑

    aigo电脑主机系统重启|csgo重启电脑,,csgo重启电脑如果重启成功应该是不需要,相反就需重新安装csgo重启电脑重连不上直接打开游戏,通过游戏

    csgo电脑等级|csgo电脑等级指令

    csgo电脑等级|csgo电脑等级指令,,csgo电脑等级指令如图:竞技匹配等级另外还有每打一局都加经验的那个等级是满级为40,满了之后可兑换赛季纪

    csgo设置准星|csgo设置准星大小

    csgo设置准星|csgo设置准星大小,,csgo设置准星大小csgo怎么设置准星方法:1.打开CSGO游戏,打开创意工坊,查找crashz' Crosshair Generator v2