golang实现通过传入表头和内容生成excel并返回io.Reader对象
package utils import ( "io" "time" "github.com/xuri/excelize/v2" ) func ExportExcel(header []string, data [][]interface{}) (buff io.Reader, err error) { file := excelize.NewFile() sheetName := time.Now().Format("2006-01-02") index, _ := file.NewSheet(sheetName) for i, v := range header { cell, _ := excelize.CoordinatesToCellName(i+1, 1) _ = file.SetCellValue(sheetName, cell, v) } for i, v := range data { for j, vv := range v { cell, _ := excelize.CoordinatesToCellName(j+1, i+2) _ = file.SetCellValue(sheetName, cell, vv) } } file.SetActiveSheet(index) buff, _ = file.WriteToBuffer() return }
这段代码是一个用于导出Excel文件的Go语言函数。它包含了一个名为`ExportExcel`的函数,该函数接受一个标题行和数据二维数组作为参数,并返回一个`io.Reader`类型的缓冲区和一个错误。
在函数内部,它使用了`excelize`库来创建一个新的Excel文件,并在其中添加工作表和数据。在创建工作表时,它使用了当前时间的格式作为工作表的名称。
接着,它遍历标题行数组,并将标题内容放入Excel表格中。然后,它嵌套遍历数据二维数组,并将数据填充到相应的单元格中。
最后,它将当前工作表设置为活动工作表,并将Excel文件写入到一个缓冲区中,最终返回该缓冲区和可能的错误。
发表评论