package excel_import import "github.com/xuri/excelize/v2" type CreateExcel struct { rowIndex int file *excelize.File sw *excelize.StreamWriter Rows [][]interface{} `json:"rows"` Header []interface{} `json:"header"` Path string `json:"path"` FileName string `json:"file_name"` ErrFileUrls []string `json:"err_file_urls"` } func (c *CreateExcel) Init() (err error) { c.file = excelize.NewFile() c.sw, err = c.file.NewStreamWriter("Sheet1") err = c.WriteHeader() return err } func (c *CreateExcel) WriteHeader() error { return c.Write(c.Header) } func (c *CreateExcel) Write(values []interface{}) error { cell, err := excelize.CoordinatesToCellName(1, c.rowIndex+1) if err != nil { return err } err = c.sw.SetRow(cell, values) if err != nil { return err } c.rowIndex++ return nil } func (c *CreateExcel) Save() error { return c.file.SaveAs(c.Path + c.FileName) }