当前位置:首页 > 文章列表 > Golang > Go教程 > Go Excelize API源码阅读SetSheetViewOptions示例解析

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

来源:脚本之家 2022-12-24 19:25:24 0浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《Go Excelize API源码阅读SetSheetViewOptions示例解析》,介绍一下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
}

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

这个函数其实逻辑很简单,就是判断下标是不是合法的,然后直接返回就是的了,如果默认下标是合法的,那么都不需要这个函数了直接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 之间的值。

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Go Excelize API源码阅读SetSheetViewOptions示例解析》文章吧,也可关注golang学习网公众号了解相关技术文章。

版本声明
本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
一文详解Golang 定时任务库 gron 设计和原理一文详解Golang 定时任务库 gron 设计和原理
上一篇
一文详解Golang 定时任务库 gron 设计和原理
GoLang之gobuild命令的具体使用
下一篇
GoLang之gobuild命令的具体使用
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    526次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    584次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    612次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    563次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    384次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码