l_excel_import/create_excel.go

45 lines
962 B
Go

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)
}