<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【GoCN酷Go推薦】Go 操作 excel 利器 excelize

          共 7041字,需瀏覽 15分鐘

           ·

          2021-04-28 16:44

          excelize 簡介


          Excelize是一個用Go語言編寫的庫,提供了一組允許您寫入和讀取XLSX / XLSM / XLTM文件的功能。支持讀寫由Microsoft Excel?2007和更高版本生成的電子表格文檔。通過高度兼容性支持復(fù)雜的組件,并提供了流式API,用于從工作表中生成或讀取包含大量數(shù)據(jù)的數(shù)據(jù)。該庫需要Go版本1.15或更高版本。

          應(yīng)用場景分析


          這個庫基本上不用多說什么了吧!

          對于非專業(yè)人士來說,可用于處理 excel 數(shù)據(jù),功能強大,解放雙手!

          對于專業(yè)程序員來說,如可以增加我們應(yīng)用程序中的 excel 導(dǎo)入導(dǎo)出功能!


          快速使用 excelize

          安裝 excelize

          go get github.com/360EntSecGroup-Skylar/excelize

          如果你使用go module,使用下面的安裝命令。

          go get github.com/360EntSecGroup-Skylar/excelize/v2

          入門案例

          首先需要明白的是 excel 中唯一確定單元格需要兩個參數(shù):

          • sheet,默認是 sheet1
          • 坐標

          寫入到excel

          package main

          import (
              "fmt"

              "github.com/360EntSecGroup-Skylar/excelize/v2"
          )

          func main() {
              f := excelize.NewFile()
              // 創(chuàng)建一個 sheet
              index := f.NewSheet("Sheet2")
              // 向單元格中寫入值
              f.SetCellValue("Sheet2""A2""gocn")
              f.SetCellValue("Sheet1""B2"100)
              // 設(shè)置文件打開后顯示哪個 sheet, 0 表示 sheet1
              f.SetActiveSheet(index)
              // 保存到文件
              if err := f.SaveAs("Book1.xlsx"); err != nil {
                  fmt.Println(err)
              }
          }

          讀取 excel 中的內(nèi)容

          package main

          import (
           "fmt"

           "github.com/360EntSecGroup-Skylar/excelize/v2"
          )

          func main() {
           //打開文件
           f, err := excelize.OpenFile("Book1.xlsx")
           if err != nil {
            fmt.Println(err)
            return
           }
           // 獲取單元格內(nèi)容
           cell, err := f.GetCellValue("Sheet1""B2")
           if err != nil {
            fmt.Println(err)
            return
           }
           fmt.Println(cell)
           // 獲取sheet1中所有的行
           rows, err := f.GetRows("Sheet1")
           for _, row := range rows {
            for _, colCell := range row {
             fmt.Print(colCell, "\t")
            }
            fmt.Println()
           }
          }

          進階使用 excelize


          如果以上功能仍然不能滿足于你,不用擔心!

          因為 excelize 遠遠不止以上功能,它還提供了:

          • 添加圖表
          • 添加圖片

          向 excel 中添加圖表

          package main

          import (
              "fmt"

              "github.com/360EntSecGroup-Skylar/excelize/v2"
          )

          func main() {
              categories := map[string]string{
                  "A2""Small""A3""Normal""A4""Large",
                  "B1""Apple""C1""Orange""D1""Pear"}
              values := map[string]int{
                  "B2"2"C2"3"D2"3"B3"5"C3"2"D3"4"B4"6"C4"7"D4"8}
              f := excelize.NewFile()
              for k, v := range categories {
                  f.SetCellValue("Sheet1", k, v)
              }
              for k, v := range values {
                  f.SetCellValue("Sheet1", k, v)
              }
              //添加圖表
              if err := f.AddChart("Sheet1""E1"`{
                  "type": "col3DClustered",
                  "series": [
                  {
                      "name": "Sheet1!$A$2",
                      "categories": "Sheet1!$B$1:$D$1",
                      "values": "Sheet1!$B$2:$D$2"
                  },
                  {
                      "name": "Sheet1!$A$3",
                      "categories": "Sheet1!$B$1:$D$1",
                      "values": "Sheet1!$B$3:$D$3"
                  },
                  {
                      "name": "Sheet1!$A$4",
                      "categories": "Sheet1!$B$1:$D$1",
                      "values": "Sheet1!$B$4:$D$4"
                  }],
                  "title":
                  {
                      "name": "Fruit 3D Clustered Column Chart"
                  }
              }`
          ); err != nil {
                  fmt.Println(err)
                  return
              }
              
              if err := f.SaveAs("Book1.xlsx"); err != nil {
                  fmt.Println(err)
              }
          }
          image-20210422141005980

          向 excel 中添加圖片

          package main

          import (
           "fmt"
           _ "image/gif"
           _ "image/jpeg"
           _ "image/png"

           "github.com/360EntSecGroup-Skylar/excelize/v2"
          )

          func main() {
           f, err := excelize.OpenFile("Book1.xlsx")
           if err != nil {
            fmt.Println(err)
            return
           }
           // Insert a picture.
           if err := f.AddPicture("Sheet1""A2""logo.png"""); err != nil {
            fmt.Println(err)
           }
           // Save the spreadsheet with the origin path.
           if err = f.Save(); err != nil {
            fmt.Println(err)
           }
          }
          image-20210422141634536


          參考資料


          • https://github.com/360EntSecGroup-Skylar/excelize

          還想了解更多嗎?

              更多請查看:https://github.com/360EntSecGroup-Skylar/excelize

              歡迎加入我們GOLANG中國社區(qū):https://gocn.vip/


          《酷Go推薦》招募:


          各位Gopher同學(xué),最近我們社區(qū)打算推出一個類似GoCN每日新聞的新欄目《酷Go推薦》,主要是每周推薦一個庫或者好的項目,然后寫一點這個庫使用方法或者優(yōu)點之類的,這樣可以真正的幫助到大家能夠?qū)W習(xí)到新的庫,并且知道怎么用。


          大概規(guī)則和每日新聞類似,如果報名人多的話每個人一個月輪到一次,歡迎大家報名!(報名地址:https://wj.qq.com/s2/7734329/3f51)




          ??  各位Gopher們,注意啦!

          Gopher China2021 大會早鳥票最后一天啦,

          還沒報名的童鞋們趕快抓住最后的機會!!!



          點擊這里閱讀原文,即刻報名~
          瀏覽 118
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产搞屄视频 | 久久岛国电影免费观看软件 | 日本黄色a作片 | 猛操在线| 99在线精品视频在线观看 |