91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go?Excelize?API源碼分析SetSheetViewOptions

發布時間:2022-08-18 09:38:27 來源:億速云 閱讀:161 作者:iii 欄目:開發技術

這篇“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類型,其下有一個函數。

  • setSheetViewOption(view *xlsxSheetView)

此處我們使用的是這個函數....

Go?Excelize?API源碼分析SetSheetViewOptions

Go?Excelize?API源碼分析SetSheetViewOptions

Go?Excelize?API源碼分析SetSheetViewOptions

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

然后直接賦值傳遞過去。

下面介紹一下這些參數的含義:

  • 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”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗定市| 宝鸡市| 丰城市| 利川市| 抚松县| 察雅县| 凤台县| 绥江县| 轮台县| 九江县| 三门峡市| 白山市| 灌阳县| 渝北区| 灵山县| 青岛市| 鄂伦春自治旗| 峡江县| 吉林省| 榆林市| 桂东县| 金山区| 吴旗县| 嘉善县| 乃东县| 敖汉旗| 柘城县| 砚山县| 深州市| 淮安市| 济南市| 九台市| 郑州市| 桂平市| 平远县| 宜章县| 重庆市| 漾濞| 察雅县| 凤山县| 定陶县|