golang实现通过传入表头和内容生成并返回excel 的io.Reader对象

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文件写入到一个缓冲区中,最终返回该缓冲区和可能的错误。



最后编辑于:2023/12/02作者: 牛逼PHP

发表评论