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()); }
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); }
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(); }
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()); }
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); }
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; }
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(); }
public void GenerateClientData() { var generater = DataFactory.GetFactory(GeneraterFactoryType.Client).Create(); generater.GenerateData(ExcelExporterUtil.GetClientDataOutputPath(), ExcelExporterUtil.GetDataFileFullName(fileName), clientData, ExcelExporterUtil.GetClientClassFileName(fileName)); }
public void GenerateClientScript() { var generater = ClassFactory.GetFactory(GeneraterFactoryType.Client).Create(); generater.GenerateClass(ExcelExporterUtil.GetClientClassOutputPath(), ExcelExporterUtil.GetClientClassFileName(fileName), clientData); }