mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-08-27 21:03:41 +08:00
47 lines
966 B
Go
47 lines
966 B
Go
// Package sys
|
|
// @Link https://github.com/bufanyun/hotgo
|
|
// @Copyright Copyright (c) 2023 HotGo CLI
|
|
// @Author Ms <133814250@qq.com>
|
|
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
|
|
package sys
|
|
|
|
import (
|
|
"context"
|
|
"github.com/xuri/excelize/v2"
|
|
"hotgo/addons/hgexample/api/admin/comp"
|
|
)
|
|
|
|
var (
|
|
Comp = cComp{}
|
|
)
|
|
|
|
type cComp struct{}
|
|
|
|
// ImportExcel 导入Excel
|
|
func (c *cComp) ImportExcel(ctx context.Context, req *comp.ImportExcelReq) (res *comp.ImportExcelRes, err error) {
|
|
file, err := req.File.Open()
|
|
if err != nil {
|
|
return
|
|
}
|
|
defer file.Close()
|
|
|
|
excel, err := excelize.OpenReader(file)
|
|
if err != nil {
|
|
return
|
|
}
|
|
defer excel.Close()
|
|
|
|
res = new(comp.ImportExcelRes)
|
|
sheetList := excel.GetSheetList()
|
|
for _, sheet := range sheetList {
|
|
item := new(comp.ImportExcelSheet)
|
|
item.Sheet = sheet
|
|
item.Rows, err = excel.GetRows(sheet)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
res.Sheets = append(res.Sheets, item)
|
|
}
|
|
return
|
|
}
|