日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go + Excel 学习 Excelize

發布時間:2024/5/6 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go + Excel 学习 Excelize 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Excelize

簡介

Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔類庫,基于 ECMA-376 Office OpenXML 標準。可以使用它來讀取、寫入由 Microsoft Excel? 2007 及以上版本創建的 XLSX 文檔。相比較其他的開源類庫,Excelize 支持寫入原本帶有圖片(表)、透視表和切片器等復雜樣式的文檔,還支持向 Excel 文檔中插入圖片與圖表,并且在保存后不會丟失文檔原有樣式,可以應用于各類報表系統中。使用本類庫要求使用的 Go 語言為 1.10 或更高版本,完整的 API 使用文檔請訪問 godoc.org 或查看 參考文檔。

快速上手

安裝

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

創建 Excel 文檔

下面是一個創建 Excel 文檔的簡單例子:

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize" )func main() {f := excelize.NewFile()// 創建一個工作表index := f.NewSheet("Sheet2")// 設置單元格的值f.SetCellValue("Sheet2", "A2", "Hello world.")f.SetCellValue("Sheet1", "B2", 100)// 設置工作簿的默認工作表f.SetActiveSheet(index)// 根據指定路徑保存文件err := f.SaveAs("./Book1.xlsx")if err != nil {fmt.Println(err)} }

讀取 Excel 文檔

下面是讀取 Excel 文檔的例子:

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize" )func main() {f, err := excelize.OpenFile("./Book1.xlsx")if err != nil {fmt.Println(err)return}// 獲取工作表中指定單元格的值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()} }

在 Excel 文檔中創建圖表

使用 Excelize 生成圖表十分簡單,僅需幾行代碼。您可以根據工作表中的已有數據構建圖表,或向工作表中添加數據并創建圖表。

package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize" )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)}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"}}`)if err != nil {fmt.Println(err)return}// 根據指定路徑保存文件err = f.SaveAs("./Book1.xlsx")if err != nil {fmt.Println(err)} }

向 Excel 文檔中插入圖片

package mainimport ("fmt"_ "image/gif"_ "image/jpeg"_ "image/png""github.com/360EntSecGroup-Skylar/excelize" )func main() {f, err := excelize.OpenFile("./Book1.xlsx")if err != nil {fmt.Println(err)return}// 插入圖片err = f.AddPicture("Sheet1", "A2", "./image1.png", "")if err != nil {fmt.Println(err)}// 在工作表中插入圖片,并設置圖片的縮放比例err = f.AddPicture("Sheet1", "D2", "./image2.jpg", `{"x_scale": 0.5, "y_scale": 0.5}`)if err != nil {fmt.Println(err)}// 在工作表中插入圖片,并設置圖片的打印屬性err = f.AddPicture("Sheet1", "H2", "./image3.gif", `{"x_offset": 15, "y_offset": 10, "print_obj": true, "lock_aspect_ratio": false, "locked": false}`)if err != nil {fmt.Println(err)}// 保存文件err = f.Save()if err != nil {fmt.Println(err)} }

社區合作

歡迎您為此項目貢獻代碼,提出建議或問題、修復 Bug 以及參與討論對新功能的想法。 XML 符合標準: part 1 of the 5th edition of the ECMA-376 Standard for Office Open XML。

開源許可

本項目遵循 BSD 3-Clause 開源許可協議,訪問 https://opensource.org/licenses/BSD-3-Clause 查看許可協議文件。

Excel 徽標是 Microsoft Corporation 的商標,項目的圖片是一種改編。

本類庫中部分 XML 結構體的定義參考了開源項目:tealeg/xlsx,遵循 BSD 3-Clause License 開源許可協議。
gopher.{ai,svg,png} 由 Takuya Ueda 創作,遵循 Creative Commons 3.0 Attributions license 創作共用授權條款。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Go + Excel 学习 Excelize的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。