中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么使用Go語言在電子表格中生成相關下拉列表

發布時間:2022-03-01 13:49:42 來源:億速云 閱讀:291 作者:iii 欄目:開發技術

這篇“怎么使用Go語言在電子表格中生成相關下拉列表”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么使用Go語言在電子表格中生成相關下拉列表”文章吧。

Excelize 是一個用純 Go 編寫的庫,提供了一組允許您寫入和讀取 XLSX / XLSM / XLTM 文件的函數。支持讀取和寫入 Microsoft Excel? 2007 及更高版本生成的電子表格文檔。以高兼容性支持復雜組件,并提供流式API,用于從海量數據的工作表中生成或讀取數據。這個庫需要 Go 1.15 或更高版本。

Go:

package main
import (
    "fmt"
    "github.com/xuri/excelize/v2"
)
func main() {
    // create a new spreadsheet
    f := excelize.NewFile()
    var (
        // cell values
        data = [][]interface{}{
            {"Fruits", "Vegetables"},
            {"Mango", "Potato", nil, "Drop Down 1", "Drop Down 2"},
            {"Apple", "Tomato"},
            {"Grapes", "Spinach"},
            {"Strawberry", "Onion"},
            {"Kiwi", "Cucumber"},
        }
        addr                    string
        err                     error
        cellsStyle, headerStyle int
    )
    // set each cell value
    for r, row := range data {
        if addr, err = excelize.JoinCellName("A", r+1); err != nil {
            fmt.Println(err)
            return
        }
        if err = f.SetSheetRow("Sheet1", addr, &row); err != nil {
            fmt.Println(err)
            return
        }
    }
    // set data validation
    dvRange1 := excelize.NewDataValidation(true)
    dvRange1.Sqref = "D3:D3"
    dvRange1.SetSqrefDropList("$A$1:$B$1", true)
    if err = f.AddDataValidation("Sheet1", dvRange1); err != nil {
        fmt.Println(err)
        return
    }
    dvRange2 := excelize.NewDataValidation(true)
    dvRange2.Sqref = "E3:E3"
    dvRange2.SetSqrefDropList("INDIRECT(D3)", true)
    if err = f.AddDataValidation("Sheet1", dvRange2); err != nil {
        fmt.Println(err)
        return
    }
    // set defined name
    if err = f.SetDefinedName(&excelize.DefinedName{
        Name:     "Fruits",
        RefersTo: "Sheet1!$A$2:$A$6",
        Scope:    "Sheet1",
    }); err != nil {
        fmt.Println(err)
        return
    }
    if err = f.SetDefinedName(&excelize.DefinedName{
        Name:     "Vegetables",
        RefersTo: "Sheet1!$B$2:$B$6",
        Scope:    "Sheet1",
    }); err != nil {
        fmt.Println(err)
        return
    }
    // set custom column width
    for col, width := range map[string]float64{
        "A": 12, "B": 12, "C": 6, "D": 12, "E": 12} {
        if err = f.SetColWidth("Sheet1", col, col, width); err != nil {
            fmt.Println(err)
            return
        }
    }
    // hide gridlines for the worksheet
    if err = f.SetSheetViewOptions("Sheet1", 0,
        excelize.ShowGridLines(false)); err != nil {
        fmt.Println(err)
        return
    }
 // define the border style
    border := []excelize.Border{
        {Type: "top", Style: 1, Color: "cccccc"},
        {Type: "left", Style: 1, Color: "cccccc"},
        {Type: "right", Style: 1, Color: "cccccc"},
        {Type: "bottom", Style: 1, Color: "cccccc"},
    }
    // define the style of cells
    if cellsStyle, err = f.NewStyle(&excelize.Style{
        Font:   &excelize.Font{Color: "333333"},
        Border: border}); err != nil {
        fmt.Println(err)
        return
    }
    // define the style of the header row
    if headerStyle, err = f.NewStyle(&excelize.Style{
        Font: &excelize.Font{Bold: true},
        Fill: excelize.Fill{
            Type: "pattern", Color: []string{"dae9f3"}, Pattern: 1},
        Border: border},
    ); err != nil {
        fmt.Println(err)
        return
    }
    // set cell style
    if err = f.SetCellStyle("Sheet1", "A2", "B6", cellsStyle); err != nil {
        fmt.Println(err)
        return
    }
    if err = f.SetCellStyle("Sheet1", "D3", "E3", cellsStyle); err != nil {
        fmt.Println(err)
        return
    }
    // set cell style for the header row
    if err = f.SetCellStyle("Sheet1", "A1", "B1", headerStyle); err != nil {
        fmt.Println(err)
        return
    }
    if err = f.SetCellStyle("Sheet1", "D2", "E2", headerStyle); err != nil {
        fmt.Println(err)
        return
    }
    // save spreadsheet file
    if err := f.SaveAs("Book1.xlsx"); err != nil {
        fmt.Println(err)
    }

}

以上就是關于“怎么使用Go語言在電子表格中生成相關下拉列表”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

临桂县| 许昌市| 图片| 衢州市| 政和县| 西青区| 福贡县| 中方县| 黎城县| 荥阳市| 昭觉县| 忻州市| 龙南县| 德州市| 大埔县| 剑河县| 迭部县| 开鲁县| 大名县| 辽中县| 方正县| 土默特左旗| 太谷县| 陈巴尔虎旗| 连江县| 山阴县| 库车县| 韶山市| 广德县| 子洲县| 望城县| 同仁县| 威海市| 沙雅县| 蛟河市| 许昌市| 丰宁| 永新县| 丰都县| 张北县| 屏南县|