配置导出工具实现

This commit is contained in:
kercylan98 2023-05-17 18:56:15 +08:00
parent 423318168f
commit 78e8d18b24
3 changed files with 0 additions and 69 deletions

View File

@ -1,46 +0,0 @@
package internal
import (
"fmt"
"github.com/kercylan98/minotaur/utils/file"
"github.com/kercylan98/minotaur/utils/log"
"github.com/tealeg/xlsx"
"go.uber.org/zap"
"path/filepath"
"runtime/debug"
"sync"
)
func ExportJSON(xlsxPath string, output string) {
xlsxFile, err := xlsx.OpenFile(xlsxPath)
if err != nil {
panic(err)
}
var errors []func()
var wait sync.WaitGroup
for _, sheet := range xlsxFile.Sheets {
sheet := sheet
go func() {
defer func() {
if err := recover(); err != nil {
errors = append(errors, func() {
log.Error("导出失败", zap.String("名称", xlsxPath), zap.String("Sheet", sheet.Name), zap.Any("err", err))
fmt.Println(debug.Stack())
})
}
}()
wait.Add(1)
config := NewConfig(sheet)
if err := file.WriterFile(filepath.Join(output, fmt.Sprintf("%s.json", config.GetName())), config.GetJSON()); err != nil {
panic(err)
}
wait.Done()
}()
}
wait.Wait()
for _, f := range errors {
f()
}
}

View File

@ -1 +0,0 @@
package internal

View File

@ -1,22 +0,0 @@
package internal
type XXConfig struct {
Id int
Count string
Award map[int]string
Info *struct {
Id int
Name string
Info *struct {
Lv int
Exp *struct {
Mux int
Count int
}
}
}
Other *struct {
Id int
Name string
}
}