34 lines
600 B
Go
34 lines
600 B
Go
|
package utils
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"github.com/tealeg/xlsx"
|
||
|
)
|
||
|
|
||
|
func CreateExcel(headers []string, data map[int]string) (*bytes.Buffer, error) {
|
||
|
file := xlsx.NewFile()
|
||
|
sheet, err := file.AddSheet("sheet1")
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
headerRow := sheet.AddRow()
|
||
|
for _, header := range headers {
|
||
|
cell := headerRow.AddCell()
|
||
|
cell.Value = header
|
||
|
}
|
||
|
|
||
|
dataRow := sheet.AddRow()
|
||
|
for i := 0; i < len(headers); i++ {
|
||
|
cell := dataRow.AddCell()
|
||
|
cell.Value = data[i]
|
||
|
}
|
||
|
|
||
|
buffer := new(bytes.Buffer)
|
||
|
if err := file.Write(buffer); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return buffer, nil
|
||
|
}
|