Golang 第三方庫學習 · xlsx
本文為轉載,原文:Golang 第三方庫學習 · xlsx
介紹
xlsx 是對新版本的Excel進行簡單讀寫操作的golang第三方庫,支援的檔案格式是.xlsx
原始碼
第三方庫原始碼:
https://github.com/tealeg/xlsx
本文原始碼:
https://github.com/Chain-Zhang/third-lib
安裝
go get github.com/tealeg/xlsx
使用
Read
excel 檔案內容:
讀取excel檔案程式碼:
import(
"fmt"
"github.com/tealeg/xlsx"
)
var (
inFile = "/Users/chain/Downloads/student1.xlsx"
)
func Import(){
// 開啟檔案
xlFile, err := xlsx.OpenFile(inFile)
if err != nil {
fmt.Println(err.Error())
return
}
// 遍歷sheet頁讀取
for _, sheet := range xlFile.Sheets {
fmt.Println("sheet name: ", sheet.Name)
//遍歷行讀取
for _, row := range sheet.Rows {
// 遍歷每行的列讀取
for _, cell := range row.Cells {
text := cell.String()
fmt.Printf("%20s", text)
}
fmt.Print("\n")
}
}
fmt.Println("\n\nimport success")
}
測試程式碼:
import(
"testing"
)
func TestImport(t *testing.T){
Import()
}
結果:
Write
import(
"strconv"
"fmt"
"github.com/tealeg/xlsx"
)
var (
inFile = "/Users/chain/Downloads/student1.xlsx"
outFile = "/Users/chain/Downloads/out_student.xlsx"
)
type Student struct{
Name string
age int
Phone string
Gender string
Mail string
}
func Export(){
file := xlsx.NewFile()
sheet, err := file.AddSheet("student_list")
if err != nil {
fmt.Printf(err.Error())
}
stus := getStudents()
//add data
for _, stu := range stus{
row := sheet.AddRow()
nameCell := row.AddCell()
nameCell.Value = stu.Name
ageCell := row.AddCell()
ageCell.Value = strconv.Itoa(stu.age)
phoneCell := row.AddCell()
phoneCell.Value = stu.Phone
genderCell := row.AddCell()
genderCell.Value = stu.Gender
mailCell := row.AddCell()
mailCell.Value = stu.Mail
}
err = file.Save(outFile)
if err != nil {
fmt.Printf(err.Error())
}
fmt.Println("\n\nexport success")
}
func getStudents()[]Student{
students := make([]Student, 0)
for i := 0; i < 10; i++{
stu := Student{}
stu.Name = "name" + strconv.Itoa(i + 1)
stu.Mail = stu.Name + "@chairis.cn"
stu.Phone = "1380013800" + strconv.Itoa(i)
stu.age = 20
stu.Gender = "男"
students = append(students, stu)
}
return students
}
測試程式碼:
import(
"testing"
)
func TestExport(t *testing.T){
Export()
}
匯出結果:
完
轉載請註明出處
Golang 第三方庫學習 · xlsx
相關文章
- Golang標準庫學習—container/heapGolangAI
- 新手寫golang第三方庫Golang
- Golang 學習寶庫,各種資料收集Golang
- Golang 學習——interface 介面學習(一)Golang
- Golang 學習——interface 介面學習(二)Golang
- Qxlsx庫解析xlsx檔案問題
- golang 學習筆記Golang筆記
- 用 debugger 學習 golangGolang
- goLang學習筆記(一)Golang筆記
- goLang學習筆記(二)Golang筆記
- goLang學習筆記(三)Golang筆記
- goLang學習筆記(四)Golang筆記
- golang學習之路 之mapGolang
- 【學習筆記】Golang 切片筆記Golang
- GOLang 學習筆記(一)Golang筆記
- golang 學習筆記1Golang筆記
- golang學習第二課Golang
- 6. 開篇《 刻意學習 Golang - 標準庫原始碼分析 》Golang原始碼
- Golang 學習系列第四天:運算元據庫 PostgreSQLGolangSQL
- python第三方庫——xlrd和xlwt操作Excel檔案學習PythonExcel
- Golang 學習——如何判斷 Golang 介面是否實現?Golang
- 分享基本golang學習的書Golang
- Golang 學習——常量 const 和 iotaGolang
- Golang學習刷Leetcode1GolangLeetCode
- golang學習第三天Golang
- golang學習筆記(二)—— 深入golang中的協程Golang筆記
- Golang學習筆記之方法(method)Golang筆記
- Golang學習筆記-1.6 函式Golang筆記函式
- Golang 學習——結構體 struct (一)Golang結構體Struct
- Golang 學習——結構體 struct (二)Golang結構體Struct
- Golang學習筆記(1):包管理Golang筆記
- Golang | IO庫Golang
- 4. 黑科技 Interface |《 刻意學習 Golang 》Golang
- golang 學習之路之 struct 結構體GolangStruct結構體
- Golang學習筆記-IDE安裝指南Golang筆記IDE
- 寫在學習golang一個月後Golang
- 學習Golang時遇到的似懂非懂的概念Golang
- Golang gRPC學習(04): Deadlines超時限制GolangRPC