为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 第三方库学习 · xlsx

标签:
Go

本文为转载,原文:Golang 第三方库学习 · xlsx

Golang

介绍

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数据

读取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



点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消