最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go?Excelize?API源碼閱讀SetSheetViewOptions示例解析

 更新時間:2022年08月17日 17:09:32   作者:丘山子  
這篇文章主要為大家介紹了Go-Excelize?API源碼閱讀SetSheetViewOptions示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、Go-Excelize簡介

Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎(chǔ)庫,基于 ECMA-376,ISO/IEC 29500 國際標(biāo)準(zhǔn)。

可以使用它來讀取、寫入由 Microsoft Excel™ 2007 及以上版本創(chuàng)建的電子表格文檔。

支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復(fù)雜組件的文檔,并提供流式讀寫 API,用于處理包含大規(guī)模數(shù)據(jù)的工作簿。

可應(yīng)用于各類報表平臺、云計算、邊緣計算等系統(tǒng)。使用本類庫要求使用的 Go 語言為 1.15 或更高版本。

二、 SetSheetViewOptions

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

根據(jù)給定的工作表名稱、視圖索引和視圖參數(shù)設(shè)置工作表視圖屬性,viewIndex 可以是負(fù)數(shù),如果是這樣,則向后計數(shù)(-1 代表最后一個視圖)。

可選視圖參數(shù)類型
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)

其輸出結(jié)果如下:

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
}

先根據(jù)工作表視圖的索引取工作表視圖。

這個函數(shù)其實(shí)邏輯很簡單,就是判斷下標(biāo)是不是合法的,然后直接返回就是的了,如果默認(rèn)下標(biāo)是合法的,那么都不需要這個函數(shù)了直接ws.SheetViews.SheetView[viewIndex].

然后再遍歷不定長參數(shù)opts

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

opt都是SheetViewOption interface類型,其下有一個函數(shù)。

  • setSheetViewOption(view *xlsxSheetView)

此處我們使用的是這個函數(shù)....

邏輯都很簡單,就是將傳來的值處理成工作表視圖屬性能夠設(shè)置的值。

然后直接賦值傳遞過去。

下面介紹一下這些參數(shù)的含義:

  • DefaultGridColor是一個SheetViewOption。它指定一個標(biāo)志,指示使用應(yīng)用程序應(yīng)使用默認(rèn)網(wǎng)格線顏色(取決于系統(tǒng))。覆蓋 colorId 中指定的任何顏色。
  • ShowFormulas是一個SheetViewOption。它指定一個標(biāo)志,指示此工作表是否應(yīng)顯示公式。
  • ShowGridLines是一個SheetViewOption。它指定一個標(biāo)志,指示此工作表是否應(yīng)顯示網(wǎng)格線。
  • ShowRowColHeaders是一個SheetViewOption。它指定一個標(biāo)志,指示工作表是否應(yīng)顯示行標(biāo)題和列標(biāo)題。
  • ShowZeros是一個SheetViewOption。它指定一個標(biāo)志,指示是否“在值為零的單元格中顯示零”。當(dāng)使用公式引用另一個空單元格時,當(dāng)標(biāo)志為 true 時,引用的值變?yōu)?0。默認(rèn)設(shè)置為 true。
  • RightToLeft是一個SheetViewOption。它指定一個標(biāo)志,指示工作表是否處于“從右到左”的顯示模式。在此模式下,列 A 位于最右側(cè),列 B ;位于列 A 的左側(cè)一列,依此類推。此外,單元格中的信息以從右到左的格式顯示。
  • ShowRuler是一個SheetViewOption。它指定一個標(biāo)志,指示此工作表應(yīng)顯示標(biāo)尺。
  • View是一個 SheetViewOption。它指定一個標(biāo)志,指示工作表的顯示方式,默認(rèn)情況下,它使用空字符串。
  • TopLeftCell是一個SheetViewOption。它指定左上角可見單元格的位置 右下窗格中左上角可見單元格的位置(從左到右模式時)。
  • ZoomScale是一個SheetViewOption。它為表示百分比值的當(dāng)前視圖指定窗口縮放放大倍率。此屬性限制為介于 10 到 400 之間的值。

以上就是Go-Excelize API源碼閱讀SetSheetViewOptions示例解析的詳細(xì)內(nèi)容,更多關(guān)于Go-Excelize API源碼閱讀的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go語言strconv包實(shí)現(xiàn)字符串和數(shù)值類型的相互轉(zhuǎn)換

    Go語言strconv包實(shí)現(xiàn)字符串和數(shù)值類型的相互轉(zhuǎn)換

    這篇文章主要介紹了Go語言strconv包實(shí)現(xiàn)字符串和數(shù)值類型的相互轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 通過與Java功能上的對比來學(xué)習(xí)Go語言

    通過與Java功能上的對比來學(xué)習(xí)Go語言

    這篇文章主要介紹了通過與Java功能上的對比來學(xué)習(xí)Go語言的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 使用Go實(shí)現(xiàn)偽靜態(tài)URL重寫功能

    使用Go實(shí)現(xiàn)偽靜態(tài)URL重寫功能

    在Web開發(fā)中,偽靜態(tài)URL已成為優(yōu)化網(wǎng)站架構(gòu)和提升SEO的常用技術(shù)手段,偽靜態(tài)URL是一種介于動態(tài)URL和靜態(tài)URL之間的解決方案,本文給大家介紹了如何使用Go實(shí)現(xiàn)偽靜態(tài)URL重寫功能,需要的朋友可以參考下
    2024-08-08
  • Go中的gRPC入門教程詳解

    Go中的gRPC入門教程詳解

    本文詳細(xì)講解了Go中的gRPC入門教程,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Go 語言 IDE 中的 VSCode 配置使用教程

    Go 語言 IDE 中的 VSCode 配置使用教程

    Gogland 是 JetBrains 公司推出的Go語言集成開發(fā)環(huán)境。這篇文章主要介紹了Go 語言 IDE 中的 VSCode 配置使用教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Go語言對JSON進(jìn)行編碼和解碼的方法

    Go語言對JSON進(jìn)行編碼和解碼的方法

    這篇文章主要介紹了Go語言對JSON進(jìn)行編碼和解碼的方法,涉及Go語言操作json的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go語言sort包函數(shù)使用示例

    Go語言sort包函數(shù)使用示例

    這篇文章主要為大家介紹了Go語言sort包函數(shù)使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Golang空結(jié)構(gòu)體struct{}用途,你知道嗎

    Golang空結(jié)構(gòu)體struct{}用途,你知道嗎

    這篇文章主要介紹了Golang空結(jié)構(gòu)體struct{}用途,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Golang中的四個括號示例詳解

    Golang中的四個括號示例詳解

    這篇文章主要介紹了Golang中的四個括號,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),通過實(shí)例代碼補(bǔ)充介紹了有效的括號golang實(shí)現(xiàn),需要的朋友可以參考下
    2024-03-03
  • Golang中Json的序列化和反序列化的使用

    Golang中Json的序列化和反序列化的使用

    本文主要介紹了Golang中Json的序列化和反序列化的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論

荆州市| 融水| 饶河县| 临猗县| 垫江县| 信丰县| 桐庐县| 墨脱县| 新昌县| 青川县| 青浦区| 遵义县| 中超| 武穴市| 科技| 城步| 巴林左旗| 博兴县| 永川市| 江门市| 富宁县| 墨玉县| 浑源县| 蓝田县| 出国| 宝兴县| 武城县| 铜梁县| 焦作市| 东乡县| 连城县| 响水县| 平顺县| 景泰县| 凤翔县| 开化县| 侯马市| 文山县| 安徽省| 通海县| 太和县|