Go Excelize API源码分析SetSheetViewOptions

发布时间:2022-08-18 09:38:27 作者:iii
来源:亿速云 阅读:162

这篇“Go Excelize API源码分析SetSheetViewOptions”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Go Excelize API源码分析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
}

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

Go Excelize API源码分析SetSheetViewOptions

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

然后再遍历不定长参数opts

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

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

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

Go Excelize API源码分析SetSheetViewOptions

Go Excelize API源码分析SetSheetViewOptions

Go Excelize API源码分析SetSheetViewOptions

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

然后直接赋值传递过去。

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

以上就是关于“Go Excelize API源码分析SetSheetViewOptions”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

推荐阅读:
  1. Go语言中RESTful JSON API怎么创建
  2. 基于Go语言怎么构建RESTful API服务

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

go excelize setsheetviewoptions

上一篇:React中useMemo与useCallback的区别是什么

下一篇:Python怎么使用openpyxl处理Excel文件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》