feat: excel export for primitive fields

This commit is contained in:
2025-03-11 16:10:18 +07:00
parent 5c372e8029
commit 1ed106f167
9 changed files with 149 additions and 55 deletions

View File

@@ -0,0 +1,35 @@
package excel
type ExporterInterface interface {
GetSheetName() string
GetEntity() any
GetProvider() func() ([]any, error)
}
type Exporter[T any] struct {
SheetName string
Entity T
Provider func() ([]*T, error)
}
func (e Exporter[T]) GetSheetName() string {
return e.SheetName
}
func (e Exporter[T]) GetEntity() any {
return e.Entity
}
func (e Exporter[T]) GetProvider() func() ([]any, error) {
return func() ([]any, error) {
entities, err := e.Provider()
if err != nil {
return nil, err
}
result := make([]any, len(entities))
for i, entity := range entities {
result[i] = entity
}
return result, nil
}
}