45 lines
962 B
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)
|
|
}
|