From 0f966c02f7bf18db5e6b1d4bc49ba7bdecae6c55 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Sat, 11 Nov 2023 18:18:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=AF=BC=E8=A1=A8=E5=B7=A5=E5=85=B7=E6=95=B0=E7=BB=84=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=BC=82=E5=B8=B8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- planner/pce/exporter/cmd/exportjson_test.go | 98 ++++++++++++++++++++ planner/pce/exporter/xlsx_template.xlsx | Bin 14974 -> 14928 bytes planner/pce/loader.go | 6 +- 3 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 planner/pce/exporter/cmd/exportjson_test.go diff --git a/planner/pce/exporter/cmd/exportjson_test.go b/planner/pce/exporter/cmd/exportjson_test.go new file mode 100644 index 0000000..5f18762 --- /dev/null +++ b/planner/pce/exporter/cmd/exportjson_test.go @@ -0,0 +1,98 @@ +package cmd_test + +import ( + "errors" + "fmt" + "github.com/kercylan98/minotaur/planner/pce" + "github.com/kercylan98/minotaur/planner/pce/cs" + "github.com/kercylan98/minotaur/planner/pce/tmpls" + "github.com/kercylan98/minotaur/utils/file" + "github.com/kercylan98/minotaur/utils/hash" + "github.com/kercylan98/minotaur/utils/str" + "github.com/tealeg/xlsx" + "os" + "path/filepath" + "strings" + "testing" +) + +func TestExecute(t *testing.T) { + var filePath, outPath, exclude, exportType, prefix string + + exportType = "s" + filePath = `.\游戏配置.xlsx` + filePath = `../xlsx_template.xlsx` + outPath = `.` + + isDir, err := file.IsDir(outPath) + if err != nil { + if errors.Is(err, os.ErrNotExist) { + isDir = filepath.Ext(outPath) == "" + } else { + panic(err) + } + } + if !isDir { + panic(errors.New("output must be a directory path")) + } + _ = os.MkdirAll(outPath, os.ModePerm) + + fpd, err := file.IsDir(filePath) + if err != nil { + panic(err) + } + + var xlsxFiles []string + if fpd { + files, err := os.ReadDir(filePath) + if err != nil { + panic(err) + } + for _, f := range files { + if f.IsDir() || !strings.HasSuffix(f.Name(), ".xlsx") || strings.HasPrefix(f.Name(), "~") { + continue + } + xlsxFiles = append(xlsxFiles, filepath.Join(filePath, f.Name())) + } + } else { + xlsxFiles = append(xlsxFiles, filePath) + } + + var exporter = pce.NewExporter() + loader := pce.NewLoader(pce.GetFields()) + + excludes := hash.ToMapBool(str.SplitTrimSpace(exclude, ",")) + for _, xlsxFile := range xlsxFiles { + xf, err := xlsx.OpenFile(xlsxFile) + if err != nil { + panic(err) + } + + for _, sheet := range xf.Sheets { + var cx *cs.Xlsx + switch strings.TrimSpace(strings.ToLower(exportType)) { + case "c": + cx = cs.NewXlsx(sheet, cs.XlsxExportTypeClient) + case "s": + cx = cs.NewXlsx(sheet, cs.XlsxExportTypeServer) + } + if strings.HasPrefix(cx.GetDisplayName(), "#") || strings.HasPrefix(cx.GetConfigName(), "#") || excludes[cx.GetConfigName()] || excludes[cx.GetDisplayName()] { + continue + } + + if raw, err := exporter.ExportData(tmpls.NewJSON(), loader.LoadData(cx)); err != nil { + panic(err) + } else { + var jsonPath string + if len(prefix) == 0 { + jsonPath = filepath.Join(outPath, fmt.Sprintf("%s.json", cx.GetConfigName())) + } else { + jsonPath = filepath.Join(outPath, fmt.Sprintf("%s.%s.json", prefix, cx.GetConfigName())) + } + if err := file.WriterFile(jsonPath, raw); err != nil { + panic(err) + } + } + } + } +} diff --git a/planner/pce/exporter/xlsx_template.xlsx b/planner/pce/exporter/xlsx_template.xlsx index 7ebc65ea2eb7e93285b54963444ac502df6ba001..ed022b4bd017e6d00e738d0d36eed253b17ad838 100644 GIT binary patch delta 5306 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 diff --git a/planner/pce/loader.go b/planner/pce/loader.go index b6bd373..5ccb08c 100644 --- a/planner/pce/loader.go +++ b/planner/pce/loader.go @@ -90,14 +90,14 @@ func (slf *Loader) sliceInterpreter(fieldType, fieldValue string) any { return nil } t := strings.TrimPrefix(fieldType, "[]") - var data = map[any]any{} + var data []any gjson.ForEachLine(fieldValue, func(line gjson.Result) bool { line.ForEach(func(key, value gjson.Result) bool { field, exist := slf.fields[t] if exist { - data[len(data)] = field.Parse(value.String()) + data = append(data, field.Parse(value.String())) } else { - data[len(data)] = slf.structInterpreter(t, value.String()) + data = append(data, slf.structInterpreter(t, value.String())) } return true })