public void GenerateClass(string savePath, string className, ExcelGameData data)
    {
        if (!Directory.Exists(savePath))
        {
            Directory.CreateDirectory(savePath);
        }
        string fileName = className + ExcelExporterUtil.ClientClassExt;
        //var content = ExcelExporterUtil.GenerateCommonClassStr("Config.JsonConfig", className, "ConfigJsonBase", data);
        List <string> types  = data.fieldTypeList;
        List <string> fields = data.fieldNameList;

        StringBuilder sb = new StringBuilder();

        ExcelExporterUtil.AddCommonSpaceToSb(sb);

        sb.AppendLine("using Newtonsoft.Json;");
        sb.AppendLine();

        //sb.AppendLine("namespace " + "Config.JsonConfig");
        //sb.AppendLine("{");

        //sb.AppendLine("\tpublic class " + className + ": ConfigJsonBase");
        //sb.AppendLine("\t{");

        //ExcelExporterUtil.AddFieldsToSb(sb, types, fields);

        //sb.AppendLine("\t}");
        //sb.AppendLine("}");
        ExcelExporterUtil.AddContentToSb(sb, "Config.JsonConfig", className, "ConfigJsonBase", types, fields, false);


        File.WriteAllText(savePath + fileName, sb.ToString());
    }
Esempio n. 2
0
    public void GenerateData(string savePath, string fileName, ExcelGameData data, string className)
    {
        if (!Directory.Exists(savePath))
        {
            Directory.CreateDirectory(savePath);
        }

        var type = ExcelExporterUtil.GetDataType("Config.BinaryConfig.", className);

        if (type == null)
        {
            return;
        }
        var objContainer = new ConfigBinaryContainer();

        objContainer.typeName = type.Name;
        for (int i = 0; i < data.cellList.Count; i++)
        {
            var cfg = data.GetObject(i, type) as ConfigBinaryBase;
            objContainer.dataMap.Add(cfg.ID, cfg);
        }
        BinaryFormatter formater   = new BinaryFormatter();
        var             fileStream = new FileStream(Path.Combine(savePath, fileName), FileMode.OpenOrCreate);

        formater.Serialize(fileStream, objContainer);
        fileStream.Close();
        //File.WriteAllText(Path.Combine(savePath, fileName), content);
    }
    public void GenerateData(string savePath, string fileName, ExcelGameData data, string className)
    {
        if (!Directory.Exists(savePath))
        {
            Directory.CreateDirectory(savePath);
        }

        var type = ExcelExporterUtil.GetDataType("Config.JsonConfig.", className);

        if (type == null)
        {
            return;
        }
        var objContainer = new ConfigJsonContainer();;

        objContainer.typeName = type.Name;

        for (int i = 0; i < data.cellList.Count; i++)
        {
            var cfg = data.GetObject(i, type) as ConfigJsonBase;
            objContainer.dataMap.Add(cfg.ID, cfg);
        }

        JsonSerializerSettings settings = new JsonSerializerSettings {
            TypeNameHandling = TypeNameHandling.Objects
        };
        var content = JsonConvert.SerializeObject(objContainer, settings);

        File.WriteAllText(Path.Combine(savePath, fileName), content);
    }
Esempio n. 4
0
    void CleanClient()
    {
        var files = Directory.GetFiles(ExcelExporterUtil.GetClientClassOutputPath());

        for (int i = 0; i < files.Length; i++)
        {
            var fileName = Path.GetFileName(files[i]);
            if (fileName.StartsWith("Cfg") && fileName.EndsWith(".cs"))
            {
                File.Delete(files[i]);
            }
        }

        files = Directory.GetFiles(ExcelExporterUtil.GetClientDataOutputPath());
        for (int i = 0; i < files.Length; i++)
        {
            var fileName = Path.GetFileName(files[i]);
            if (fileName.EndsWith(".bytes"))
            {
                File.Delete(files[i]);
            }
        }
        ExcelTextClassGenerater.GenerateClientClassFactory(ExcelExporterUtil.GetClientDataOutputPath(), ExcelExporterUtil.GetClientClassOutputPath() + "Base/", true);

        AssetDatabase.Refresh();
    }
    public void GenerateData(string savePath, string fileName, ExcelGameData data, string className)
    {
        if (!Directory.Exists(savePath))
        {
            Directory.CreateDirectory(savePath);
        }

        var type = ExcelExporterUtil.GetDataType("Config.ScriptableConfig.", className);

        if (type == null)
        {
            return;
        }
        var objContainer = ScriptableObject.CreateInstance <Config.ScriptableConfig.CfgScriptableObjectContainer>();

        objContainer.typeName = type.Name;
        string relativePath = ExcelExporterUtil.GetRelativePath(savePath);

        AssetDatabase.CreateAsset(objContainer, Path.Combine(relativePath, fileName));
        for (int i = 0; i < data.cellList.Count; i++)
        {
            var dataInstance = data.GetSOObject(i, type) as ConfigSoBase;
            dataInstance.hideFlags = HideFlags.HideInInspector;
            objContainer.dataList.Add(dataInstance);
            AssetDatabase.AddObjectToAsset(dataInstance, objContainer);
        }
        AssetDatabase.SaveAssets();
    }
Esempio n. 6
0
    public void GenerateClass(string savePath, string className, ExcelGameData data)
    {
        if (!Directory.Exists(savePath))
        {
            Directory.CreateDirectory(savePath);
        }
        string fileName = className + ExcelExporterUtil.ClientClassExt;

        List <string> types  = data.fieldTypeList;
        List <string> fields = data.fieldNameList;
        StringBuilder sb     = new StringBuilder();

        ExcelExporterUtil.AddCommonSpaceToSb(sb);

        sb.AppendLine("namespace Config.TextConfig");
        sb.AppendLine("{");
        sb.AppendLine("\tpublic class " + className + " : ConfigTextBase");
        sb.AppendLine("\t{");

        //跳过ID 字段
        for (int i = 1; i < types.Count; i++)
        {
            var type = SupportTypeUtil.GetIType(types[i]);
            if (type != null)
            {
                sb.AppendLine(string.Format("\t\tpublic {0} {1};", type.realName, fields[i]));
            }
        }

        sb.AppendLine();
        sb.AppendLine();

        sb.AppendLine("\t\tpublic override void Write(int i, string value)");
        sb.AppendLine("\t\t{");
        sb.AppendLine("\t\t\tswitch (i)");
        sb.AppendLine("\t\t\t{");

        for (int i = 0; i < types.Count; i++)
        {
            sb.AppendLine("\t\t\t\tcase " + i + ":");
            //默认第一个字段名称为ID  先临时处理
            sb.AppendLine("\t\t\t\t\t" + (i == 0 ? "ID" : fields[i]) + " = " + SupportTypeUtil.GetTypeParseFuncName(types[i]) + "(value);");
            sb.AppendLine("\t\t\t\t\tbreak;");
        }

        sb.AppendLine("\t\t\t\tdefault:");
        sb.AppendLine("\t\t\t\t\tUnityEngine.Debug.LogError(GetType().Name + \"src i:\" + i);");
        sb.AppendLine("\t\t\t\t\tbreak;");
        sb.AppendLine("\t\t\t}");
        sb.AppendLine("\t\t}");
        sb.AppendLine("\t}");
        sb.AppendLine("}");

        File.WriteAllText(savePath + fileName, sb.ToString());
    }
Esempio n. 7
0
    public void GenerateClass(string savePath, string className, ExcelGameData data)
    {
        if (!Directory.Exists(savePath))
        {
            Directory.CreateDirectory(savePath);
        }

        string fileName = className + ExcelExporterUtil.ClientClassExt;
        var    content  = ExcelExporterUtil.GenerateCommonClassStr("Config.ScriptableConfig", className, "ConfigSoBase", data);

        File.WriteAllText(savePath + fileName, content);
    }
Esempio n. 8
0
    public void FormatCell()
    {
        string res = originCell.stringValue;

        //文本可能为空
        if (string.IsNullOrEmpty(res))
        {
            _stringValue = string.Empty;
            return;
        }
        if (fieldType != typeof(string))
        {
            res = ExcelExporterUtil.RemoveWhiteSpaceOutTheWordFull(res);
        }
        res          = ExcelExporterUtil.RemoveWordFirstQuotation(res);
        _stringValue = res;
    }
Esempio n. 9
0
    void GenerateSelectedData()
    {
        if (_selectFiles.Count == 0)
        {
            Debug.LogError("没有选中excel");
            return;
        }
        for (int i = 0; i < _selectFiles.Count; i++)
        {
            GenSingleClientData(_selectFiles[i]);
        }

        if (ExcelExporterUtil.exportType == ExcelDataExportType.Text)
        {
            //必须有这个文件
            ExcelTextClassGenerater.GenerateClientClassFactory(ExcelExporterUtil.GetClientDataOutputPath(), ExcelExporterUtil.GetClientClassOutputPath() + "Base/", false);
        }
        AssetDatabase.Refresh();
    }
Esempio n. 10
0
    public void GenerateClientData()
    {
        var generater = DataFactory.GetFactory(GeneraterFactoryType.Client).Create();

        generater.GenerateData(ExcelExporterUtil.GetClientDataOutputPath(), ExcelExporterUtil.GetDataFileFullName(fileName), clientData, ExcelExporterUtil.GetClientClassFileName(fileName));
    }
Esempio n. 11
0
    public void GenerateClientScript()
    {
        var generater = ClassFactory.GetFactory(GeneraterFactoryType.Client).Create();

        generater.GenerateClass(ExcelExporterUtil.GetClientClassOutputPath(), ExcelExporterUtil.GetClientClassFileName(fileName), clientData);
    }