最近在工作中用到了golang解析excel并输出json的需求,下面会分享一下实现过程。
首先需要安装golang的excel解析库,可以使用以下命令进行安装:
go get github.com/tealeg/xlsx
接下来需要定义结构体来存储excel表格中的数据,具体代码如下:
type Student struct {
Name string `xlsx:"0"`
Age int `xlsx:"1"`
Score int `xlsx:"2"`
}
其中xlsx后的数字表示该字段在excel的第几列,从0开始计数。
接下来我们就可以使用上述结构体来解析excel表格了,具体代码如下:
func readExcel(filename string) ([]Student, error) {
f, err := xlsx.OpenFile(filename)
if err != nil {
return nil, err
}
var students []Student
for _, sheet := range f.Sheets {
for i, row := range sheet.Rows {
if i == 0 {
continue // 第一行是表头,跳过
}
student := Student{}
err := row.Unmarshal(&student)
if err != nil {
return nil, err
}
students = append(students, student)
}
}
return students, nil
}
接下来我们需要将读取到的数据转换成json格式并输出,具体代码如下:
func convertToJson(students []Student) ([]byte, error) {
jsonData, err := json.Marshal(students)
if err != nil {
return nil, err
}
return jsonData, nil
}
最后我们只需在main函数中调用上述两个函数即可实现excel解析并输出json的功能,具体代码如下:
func main() {
filename := "students.xlsx"
students, err := readExcel(filename)
if err != nil {
panic(err)
}
jsonData, err := convertToJson(students)
if err != nil {
panic(err)
}
fmt.Println(string(jsonData))
}
以上就是golang解析excel并输出json的实现过程。