golang 输出excel

发布时间:2024-12-04 01:49:30

Golang实现Excel读写操作 在开发中,我们常常需要将数据导出到Excel中进行展示或者进行数据分析。Golang作为一门强大的后端开发语言,在处理Excel文件方面也有着很好的支持。本文将向大家介绍如何使用Golang来实现Excel的输出功能。

Golang的Excel支持库

Golang有着丰富的第三方库来处理Excel文件,其中比较受欢迎的是“github.com/360EntSecGroup-Skylar/excelize”库。该库可以用于创建、读取和编辑Excel文件。通过使用该库,我们可以方便地生成Excel文件并填充数据。

安装Excelize库

要使用excelize库,我们首先需要进行安装。可以使用以下命令来安装: ``` go get github.com/360EntSecGroup-Skylar/excelize/v2 ```

创建Excel文件

首先,我们需要导入excelize包,并创建一个新的Excel文件。代码示例如下: ```go import ( "fmt" "github.com/360EntSecGroup-Skylar/excelize/v2" ) func main() { file := excelize.NewFile() sheet := "Sheet1" // 设置单元格内容 file.SetCellValue(sheet, "A1", "姓名") file.SetCellValue(sheet, "B1", "年龄") file.SetCellValue(sheet, "C1", "性别") // 保存文件 if err := file.SaveAs("output.xlsx"); err != nil { fmt.Println(err) return } fmt.Println("Excel文件已生成") } ``` 在代码中,我们首先通过`excelize.NewFile()`函数创建了一个新的Excel文件,并指定了默认的工作表名称。然后,我们使用`file.SetCellValue()`函数设置了单元格的内容,行号和列号从1开始。最后,我们通过`file.SaveAs()`函数将文件保存为output.xlsx。

填充Excel数据

要向Excel中填充数据,我们可以使用同样的`SetCellValue()`函数。代码示例如下: ```go func main() { file := excelize.NewFile() sheet := "Sheet1" // 设置单元格内容 file.SetCellValue(sheet, "A1", "姓名") file.SetCellValue(sheet, "B1", "年龄") file.SetCellValue(sheet, "C1", "性别") // 填充数据 data := []map[string]interface{}{ {"name": "张三", "age": 20, "gender": "男"}, {"name": "李四", "age": 22, "gender": "女"}, {"name": "王五", "age": 25, "gender": "男"}, } for i, item := range data { row := i + 2 // 跳过表头 file.SetCellValue(sheet, fmt.Sprintf("A%d", row), item["name"]) file.SetCellValue(sheet, fmt.Sprintf("B%d", row), item["age"]) file.SetCellValue(sheet, fmt.Sprintf("C%d", row), item["gender"]) } // 保存文件 if err := file.SaveAs("output.xlsx"); err != nil { fmt.Println(err) return } fmt.Println("Excel文件已生成") } ``` 在上述代码中,我们使用了一个名为`data`的切片来存储要填充的数据。然后,我们使用循环遍历切片,并通过`SetCellValue()`函数将数据填充到相应的单元格中。注意,行号需要从2开始,以跳过表头。

自定义格式

excelize库还支持自定义单元格的样式、字体、背景颜色等。例如,我们可以设置表头为粗体,并给表格添加背景颜色,使其更具可读性。代码示例如下: ```go func main() { file := excelize.NewFile() sheet := "Sheet1" // 设置单元格内容 file.SetCellValue(sheet, "A1", "姓名") file.SetCellValue(sheet, "B1", "年龄") file.SetCellValue(sheet, "C1", "性别") // 设置表头样式 style, _ := file.NewStyle(`{ "alignment":{"horizontal":"center"}, "font":{"bold":true}, "fill":{"type":"pattern","color":["#4286f4"],"pattern":1} }`) file.SetCellStyle(sheet, "A1", "C1", style) // 填充数据 data := []map[string]interface{}{ {"name": "张三", "age": 20, "gender": "男"}, {"name": "李四", "age": 22, "gender": "女"}, {"name": "王五", "age": 25, "gender": "男"}, } for i, item := range data { row := i + 2 // 跳过表头 file.SetCellValue(sheet, fmt.Sprintf("A%d", row), item["name"]) file.SetCellValue(sheet, fmt.Sprintf("B%d", row), item["age"]) file.SetCellValue(sheet, fmt.Sprintf("C%d", row), item["gender"]) } // 保存文件 if err := file.SaveAs("output.xlsx"); err != nil { fmt.Println(err) return } fmt.Println("Excel文件已生成") } ``` 在上述代码中,我们使用了`NewStyle()`函数创建了一个自定义样式,并通过`SetCellStyle()`函数将样式应用到表头单元格(从A1到C1)。样式中定义了字体为粗体,水平居中对齐,背景颜色为蓝色。

总结

通过使用Golang的excelize库,我们可以很方便地实现Excel文件的输出。我们可以创建Excel文件、填充数据,并对单元格进行自定义样式设置。这极大地提高了开发效率,使得数据展示和分析更加便捷。 本文介绍了如何使用excelize库来创建Excel文件和填充数据。同时,我们还学习了如何设置单元格的样式和自定义格式。希望本文对正在学习或使用Golang的开发者对Excel输出有所帮助。

相关推荐