Go 语言读写 Excel
生活随笔
收集整理的這篇文章主要介紹了
Go 语言读写 Excel
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Excelize 是?Go 語言編寫的一個(gè)用來操作 Office Excel 文檔類庫,基于 ECMA-376 Office OpenXML 標(biāo)準(zhǔn)。可以使用它來讀取、寫入 XLSX 文件。相比較其他的開源類庫,Excelize 支持寫入原本帶有圖片(表)的文檔,還支持向 Excel 中插入圖片,并且在保存后不會(huì)丟失圖表樣式。
安裝
go get github.com/360EntSecGroup-Skylar/excelize創(chuàng)建 XLSX
package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize" )func main() {xlsx := excelize.NewFile()// Create a new sheet.index := xlsx.NewSheet("Sheet2")// Set value of a cell.xlsx.SetCellValue("Sheet2", "A2", "Hello world.")xlsx.SetCellValue("Sheet1", "B2", 100)// Set active sheet of the workbook.xlsx.SetActiveSheet(index)// Save xlsx file by the given path.err := xlsx.SaveAs("./Book1.xlsx")if err != nil {fmt.Println(err)} }讀寫已有文檔
package mainimport ("fmt""github.com/360EntSecGroup-Skylar/excelize" )func main() {xlsx, err := excelize.OpenFile("./Book1.xlsx")if err != nil {fmt.Println(err)return}// Get value from cell by given worksheet name and axis.cell := xlsx.GetCellValue("Sheet1", "B2")fmt.Println(cell)// Get all the rows in the Sheet1.rows := xlsx.GetRows("Sheet1")for _, row := range rows {for _, colCell := range row {fmt.Print(colCell, "\t")}fmt.Println()} }向 Excel 中插入圖表
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}xlsx := excelize.NewFile()for k, v := range categories {xlsx.SetCellValue("Sheet1", k, v)}for k, v := range values {xlsx.SetCellValue("Sheet1", k, v)}xlsx.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"}}`)// Save xlsx file by the given path.err := xlsx.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() {xlsx, err := excelize.OpenFile("./Book1.xlsx")if err != nil {fmt.Println(err)return}// Insert a picture.err = xlsx.AddPicture("Sheet1", "A2", "./image1.png", "")if err != nil {fmt.Println(err)}// Insert a picture to worksheet with scaling.err = xlsx.AddPicture("Sheet1", "D2", "./image2.jpg", `{"x_scale": 0.5, "y_scale": 0.5}`)if err != nil {fmt.Println(err)}// Insert a picture offset in the cell with printing support.err = xlsx.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)}// Save the xlsx file with the origin path.err = xlsx.Save()if err != nil {fmt.Println(err)} }還有其他一些功能,在這里就不一一列舉了,詳細(xì)使用文檔以及獲取后期的維護(hù)更新可以從項(xiàng)目的主頁獲取
github.com/360EntSecGroup-Skylar/excelize
總結(jié)
以上是生活随笔為你收集整理的Go 语言读写 Excel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在Linux实现自动运行程序
- 下一篇: 理解AngularJS中的依赖注入