Go語言中的JSON數據經常用于在前端和后端之間進行交換,但有時候需要將JSON數據轉換成Excel文件。本文將介紹如何使用Go語言實現將JSON數據轉換為Excel文件的方法。
首先,在Go語言中需要使用一個庫來操作Excel文件。本文使用的是Excelize庫。在安裝Excelize庫之前,需要在本地安裝libxml2和libxslt庫??梢酝ㄟ^以下命令來安裝:
sudo apt-get install -y libxml2 libxml2-dev libxslt-dev
安裝好依賴庫之后,可以通過以下命令來安裝Excelize庫:
go get github.com/360EntSecGroup-Skylar/excelize
安裝完Excelize庫之后,就可以開始將JSON數據轉換成Excel文件了。下面是代碼示例:
package main import ( "encoding/json" "fmt" "os" "strconv" "github.com/360EntSecGroup-Skylar/excelize" ) // 定義一個結構體來存儲JSON數據 type Student struct { Name string `json:"name"` Age int `json:"age"` Score int `json:"score"` } func main() { // 假設我們有以下JSON數據 jsonData := `[{"name": "Tom", "age": 18, "score": 90}, {"name": "Jerry", "age": 17, "score": 95}, {"name": "Peter", "age": 20, "score": 88}]` // 將JSON數據解析到一個切片中 students := make([]Student, 0) err := json.Unmarshal([]byte(jsonData), &students) if err != nil { fmt.Println(err) return } // 新建一個Excel文件 f := excelize.NewFile() // 在第一個Sheet中寫入表頭 f.SetCellValue("Sheet1", "A1", "Name") f.SetCellValue("Sheet1", "B1", "Age") f.SetCellValue("Sheet1", "C1", "Score") // 在第一個Sheet中寫入數據 for i, student := range students { f.SetCellValue("Sheet1", "A"+strconv.Itoa(i+2), student.Name) f.SetCellValue("Sheet1", "B"+strconv.Itoa(i+2), student.Age) f.SetCellValue("Sheet1", "C"+strconv.Itoa(i+2), student.Score) } // 保存Excel文件 err = f.SaveAs("students.xlsx") if err != nil { fmt.Println(err) return } fmt.Println("JSON轉Excel成功!") }
以上代碼將JSON數據轉換成了一個名為students.xlsx的Excel文件。在代碼中,我們首先將JSON數據解析到一個切片中,然后新建一個Excel文件,并在第一個Sheet中寫入表頭和數據,最后保存Excel文件。運行以上代碼后,將在當前目錄下生成一個名為students.xlsx的Excel文件。
上一篇go json樹
下一篇python 賦值日期