Browse Source

ExcelResolver框架

master
coffee 6 months ago
parent
commit
d1cdd9b630
  1. 3
      .gitignore
  2. 8
      Assets/ExcelResolver.meta
  3. 8
      Assets/ExcelResolver/Excel.meta
  4. BIN
      Assets/ExcelResolver/Excel/hero.xlsx
  5. 7
      Assets/ExcelResolver/Excel/hero.xlsx.meta
  6. 8
      Assets/ExcelResolver/Json.meta
  7. 8
      Assets/Plugins/EPPlus.meta
  8. BIN
      Assets/Plugins/EPPlus/EPPlus.dll
  9. 33
      Assets/Plugins/EPPlus/EPPlus.dll.meta
  10. 8
      Assets/Scripts.meta
  11. 8
      Assets/Scripts/Generator.meta
  12. 8
      Assets/Scripts/Generator/Excel.meta
  13. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit.meta
  14. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base.meta
  15. 31
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/CodeScope.cs
  16. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/CodeScope.cs.meta
  17. 7
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICode.cs
  18. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICode.cs.meta
  19. 9
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeScope.cs
  20. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeScope.cs.meta
  21. 8
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeWriter.cs
  22. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeWriter.cs.meta
  23. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl.meta
  24. 43
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/ClassScope.cs
  25. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/ClassScope.cs.meta
  26. 17
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CloseBraceCode.cs
  27. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CloseBraceCode.cs.meta
  28. 26
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CustomCode.cs
  29. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CustomCode.cs.meta
  30. 31
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/NameSpaceScope.cs
  31. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/NameSpaceScope.cs.meta
  32. 10
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/OpenBraceCode.cs
  33. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/OpenBraceCode.cs.meta
  34. 28
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/UsingCode.cs
  35. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/UsingCode.cs.meta
  36. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer.meta
  37. 17
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer/RootCode.cs
  38. 3
      Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer/RootCode.cs.meta
  39. 7
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorConfig.asset
  40. 2
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorConfig.asset.meta
  41. 7
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorConfig.cs
  42. 30
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs
  43. 3
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs.meta
  44. 31
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs
  45. 3
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs.meta
  46. 7
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOCode.cs
  47. 3
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOCode.cs.meta
  48. 13
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.cs

3
.gitignore vendored

@ -73,6 +73,9 @@ crashlytics-build.properties
/[Aa]ssets/[Ss]treamingAssets/aa/* /[Aa]ssets/[Ss]treamingAssets/aa/*
# Excel
~$*.xlsx
~$*.xlsx.meta
/.vs /.vs

8
Assets/ExcelResolver.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2a48c7d10c6089e4bb6e64111fb6bf6a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/ExcelResolver/Excel.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 14094f78fb2f4e14dbd21a413f1692f9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/ExcelResolver/Excel/hero.xlsx

Binary file not shown.

7
Assets/ExcelResolver/Excel/hero.xlsx.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 48e32ca49f7fdd646ada9addf65fbe3f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/ExcelResolver/Json.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4b8a2f5e75555654bb2bb7f8ebc41d49
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Plugins/EPPlus.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f2744b513842f984a9d48b88f16b2312
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/EPPlus/EPPlus.dll

Binary file not shown.

33
Assets/Plugins/EPPlus/EPPlus.dll.meta

@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: c5ec07acbec7e284798856cc34f732b2
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Scripts.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4a23589c1db39354cb54493bd3bd664a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Scripts/Generator.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2c7078626b1ca6d4e88f5ea9d7d9a660
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Scripts/Generator/Excel.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b99dda3f97115a843bdb608d51ec1648
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

3
Assets/Unity-Tools/Core/Editor/CodeGenKit.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5cd35fec940c4cb89f79b6c66901008e
timeCreated: 1735992114

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0fa6f94e2e704e0faeac90ef8e185f2f
timeCreated: 1735992174

31
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/CodeScope.cs

@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace Tools.Editor.CodeGenKit
{
public abstract class CodeScope : ICodeScope
{
public bool Semicolon { get; set; }
public virtual void Gen(ICodeWriter writer)
{
GenFirstLine(writer);
new OpenBraceCode().Gen(writer);
writer.IndentCount++;
foreach (var code in Codes)
{
code.Gen(writer);
}
writer.IndentCount--;
new CloseBraceCode(Semicolon).Gen(writer);
}
protected abstract void GenFirstLine(ICodeWriter writer);
public List<ICode> Codes { get; } = new();
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/CodeScope.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 737f0286aef24e158bf957af85f06c15
timeCreated: 1735992259

7
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICode.cs

@ -0,0 +1,7 @@
namespace Tools.Editor.CodeGenKit
{
public interface ICode
{
void Gen(ICodeWriter writer);
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICode.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5b930fc6d1d247949af8177d796c4265
timeCreated: 1735992194

9
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeScope.cs

@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace Tools.Editor.CodeGenKit
{
public interface ICodeScope : ICode
{
List<ICode> Codes { get; }
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeScope.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 249dc2e076114187958bc580f2455fec
timeCreated: 1735992236

8
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeWriter.cs

@ -0,0 +1,8 @@
namespace Tools.Editor.CodeGenKit
{
public interface ICodeWriter
{
int IndentCount { get; set; }
void WriteLine(string code = null);
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Base/ICodeWriter.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 96536dd301a640eba7ff5c8d8a597663
timeCreated: 1735992216

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2362665fe861427fb3d22bfc213e7543
timeCreated: 1735992283

43
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/ClassScope.cs

@ -0,0 +1,43 @@
using System;
namespace Tools.Editor.CodeGenKit
{
public sealed class ClassScope : CodeScope
{
private readonly bool _isPartial;
private readonly bool _isStatic;
private readonly bool _isSealed;
private readonly string _parentClassName;
private readonly string _className;
public bool IsStatic => _isStatic;
public ClassScope(bool isPartial, bool isStatic, bool isSealed, string className, string parentClassName = "")
{
_isPartial = isPartial;
_isStatic = isStatic;
_isSealed = isSealed;
_parentClassName = parentClassName;
_className = className;
}
protected override void GenFirstLine(ICodeWriter writer)
{
writer.WriteLine(
$"public {(_isSealed ? "sealed " : string.Empty)}{(_isStatic ? "static " : string.Empty)}{(_isPartial ? "partial " : string.Empty)}class {_className}{(string.IsNullOrEmpty(_parentClassName) ? string.Empty : " : " + _parentClassName)}");
}
}
public static partial class CodeScopeExtensions
{
public static ICodeScope Class(this ICodeScope self, string className, bool isPartial, bool isStatic,
bool isSealed,
string parentClassName = "", Action<ClassScope> classScopeSetting = null)
{
var classScope = new ClassScope(isPartial, isStatic, isSealed, className, parentClassName);
classScopeSetting?.Invoke(classScope);
self.Codes.Add(classScope);
return self;
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/ClassScope.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 87bdee7f495f44fdab681a299935d76e
timeCreated: 1735993249

17
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CloseBraceCode.cs

@ -0,0 +1,17 @@
namespace Tools.Editor.CodeGenKit
{
public sealed class CloseBraceCode : ICode
{
private readonly bool _semicolon;
public CloseBraceCode(bool semicolon)
{
_semicolon = semicolon;
}
public void Gen(ICodeWriter writer)
{
writer.WriteLine("}" + (_semicolon ? ";" : string.Empty));
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CloseBraceCode.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 21a1d549d9fc4c5893e8b5454e43e5af
timeCreated: 1735992305

26
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CustomCode.cs

@ -0,0 +1,26 @@
namespace Tools.Editor.CodeGenKit
{
public sealed class CustomCode : ICode
{
private readonly string _content;
public CustomCode(string content)
{
_content = content;
}
public void Gen(ICodeWriter writer)
{
writer.WriteLine(_content);
}
}
public static partial class CodeScopeExtensions
{
public static ICodeScope Custom(this ICodeScope self, string content)
{
self.Codes.Add(new CustomCode(content));
return self;
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/CustomCode.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d6858c0550a54e8d9c5cf7065bf582a1
timeCreated: 1735992474

31
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/NameSpaceScope.cs

@ -0,0 +1,31 @@
using System;
namespace Tools.Editor.CodeGenKit
{
public sealed class NameSpaceScope : CodeScope
{
private readonly string _nameSpace;
public NameSpaceScope(string nameSpace)
{
_nameSpace = nameSpace;
}
protected override void GenFirstLine(ICodeWriter writer)
{
writer.WriteLine($"namespace {_nameSpace}");
}
}
public static partial class CodeScopeExtensions
{
public static ICodeScope NameSpace(this ICodeScope self, string nameSpace,
Action<NameSpaceScope> nameSpaceSetting = null)
{
var nameSpaceCode = new NameSpaceScope(nameSpace);
nameSpaceSetting?.Invoke(nameSpaceCode);
self.Codes.Add(nameSpaceCode);
return self;
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/NameSpaceScope.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5fe126821e724abaaaf317cceac9d41b
timeCreated: 1735992680

10
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/OpenBraceCode.cs

@ -0,0 +1,10 @@
namespace Tools.Editor.CodeGenKit
{
public sealed class OpenBraceCode : ICode
{
public void Gen(ICodeWriter writer)
{
writer.WriteLine("{");
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/OpenBraceCode.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3702874220a7472bb4f3f83980744f72
timeCreated: 1735992289

28
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/UsingCode.cs

@ -0,0 +1,28 @@
namespace Tools.Editor.CodeGenKit
{
public sealed class UsingCode : ICode
{
private readonly string _nameSpace;
public UsingCode(string nameSpace)
{
_nameSpace = nameSpace;
}
public void Gen(ICodeWriter writer)
{
writer.WriteLine($"using {_nameSpace};");
}
}
public static partial class CodeScopeExtensions
{
public static ICodeScope Using(this ICodeScope self, string nameSpace)
{
var code = new UsingCode(nameSpace);
self.Codes.Add(code);
return self;
}
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Impl/UsingCode.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 299e6452df21426183f1622b56cfdd85
timeCreated: 1735992567

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 541182aef19445418568c1693eda34de
timeCreated: 1735992180

17
Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer/RootCode.cs

@ -0,0 +1,17 @@
using System.Collections.Generic;
namespace Tools.Editor.CodeGenKit
{
public sealed class RootCode : ICodeScope
{
public void Gen(ICodeWriter writer)
{
foreach (var code in Codes)
{
code.Gen(writer);
}
}
public List<ICode> Codes { get; } = new();
}
}

3
Assets/Unity-Tools/Core/Editor/CodeGenKit/Writer/RootCode.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 26b647313d594f05b7ca562f2b34ce56
timeCreated: 1735992153

7
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorConfig.asset

@ -12,5 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 9247b1b02271436ca893eadb1fa8bdce, type: 3} m_Script: {fileID: 11500000, guid: 9247b1b02271436ca893eadb1fa8bdce, type: 3}
m_Name: ExcelResolverEditorConfig m_Name: ExcelResolverEditorConfig
m_EditorClassIdentifier: m_EditorClassIdentifier:
ExcelPath: Assets/Unity-Tools/Core/ExcelResolver/Editor ExcelPathRoot: Assets/ExcelResolver/Excel
JsonPath: JsonPathRoot: Assets/ExcelResolver/Json
CodePathRoot: Assets/Scripts/Generator/Excel
GenerateDataClassNameSpace: Tools.ExcelResolver
isInit: 0

2
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorConfig.asset.meta

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 4fd40b33958428a4ab4c705c25fc0ef5 guid: fce9563db00525d4b85d1b45a82c6ede
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 11400000 mainObjectFileID: 11400000

7
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorConfig.cs

@ -5,14 +5,15 @@ using UnityEngine;
namespace Tools.ExcelResolver.Editor namespace Tools.ExcelResolver.Editor
{ {
[InlineEditor(InlineEditorObjectFieldModes.CompletelyHidden)] [InlineEditor(InlineEditorObjectFieldModes.CompletelyHidden)]
[CreateAssetMenu(fileName = "ExcelResolverEditorConfig", menuName = "ExcelResolver/ExcelResolverEditorConfig")]
public sealed class ExcelResolverEditorConfig : ScriptableObject public sealed class ExcelResolverEditorConfig : ScriptableObject
{ {
[LabelText("Excel路径"), FolderPath] [LabelText("Excel路径"), FolderPath]
public string ExcelPathRoot; public string ExcelPathRoot = "Assets/ExcelResolver/Excel";
[LabelText("Json路径"), ValueDropdown("@Tools.Editor.DirectoryUtil.GetFilePaths()")] [LabelText("Json路径"), ValueDropdown("@Tools.Editor.DirectoryUtil.GetFilePaths()")]
public string JsonPathRoot; public string JsonPathRoot = "Assets/ExcelResolver/Json";
[LabelText("代码路径"), ValueDropdown("@Tools.Editor.DirectoryUtil.GetFilePaths()")] [LabelText("代码路径"), ValueDropdown("@Tools.Editor.DirectoryUtil.GetFilePaths()")]
public string CodePathRoot; public string CodePathRoot = "Assets/Scripts/Generator/Excel";
[LabelText("生成代码命名空间")] [LabelText("生成代码命名空间")]
public string GenerateDataClassNameSpace = "Tools.ExcelResolver"; public string GenerateDataClassNameSpace = "Tools.ExcelResolver";

30
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs

@ -0,0 +1,30 @@
using System.IO;
using System.Linq;
using OfficeOpenXml;
using UnityEngine;
namespace Tools.ExcelResolver.Editor
{
public sealed partial class ExcelResolverEditorWindow
{
private void ReadExcel()
{
// 获取Excel文件
config.MakeSureDirectory();
var excelFiles = new DirectoryInfo(config.ExcelPathRoot).GetFiles("*.xlsx").Where(f => !f.Name.StartsWith("~$"));
foreach (var excelFile in excelFiles)
{
using FileStream stream = File.Open(excelFile.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
using ExcelPackage package = new ExcelPackage(stream);
ExcelWorksheet worksheet = package.Workbook.Worksheets["Sheet1"];
if (null == worksheet)
{
Debug.LogError($"Excel:{excelFile.Name} don't have Sheet1 !!");
continue;
}
var first = worksheet.Cells[1, 1];
Debug.Log(first.Value.ToString());
}
}
}
}

3
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c9596183fe4b47ce844563a902dabd04
timeCreated: 1735993822

31
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs

@ -0,0 +1,31 @@
using Tools.Editor.CodeGenKit;
namespace Tools.ExcelResolver.Editor
{
public sealed partial class ExcelResolverEditorWindow
{
private enum TableType
{
SingleKeyTable, // 单主键表
UnionMultiKeyTable, // 多主键表(联合索引)
MultiKeyTable, // 多主键表(独立索引)
ColumnTable, // 纵表
}
private void WriteTypeCode()
{
var code = new RootCode();
code.Custom("//代码使用工具生成,请勿随意修改");
code.Using("System");
code.Using("System.Collections.Generic");
code.Using("System.Linq");
code.NameSpace(config.GenerateDataClassNameSpace, cope =>
{
cope.Custom("[Serializable]");
// cope.Class($"")
});
}
}
}

3
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 4cf09c9741d243cd8c9002f7249aae06
timeCreated: 1735991897

7
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOCode.cs

@ -0,0 +1,7 @@
namespace Tools.ExcelResolver.Editor
{
public sealed partial class ExcelResolverEditorWindow
{
}
}

3
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOCode.cs.meta

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1751ebb7e31442b2939a16c185a1bb43
timeCreated: 1735991637

13
Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.cs

@ -1,18 +1,22 @@
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using Sirenix.OdinInspector.Editor; using Sirenix.OdinInspector.Editor;
using Sirenix.Utilities;
using Sirenix.Utilities.Editor;
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;
namespace Tools.ExcelResolver.Editor namespace Tools.ExcelResolver.Editor
{ {
public class ExcelResolverEditorWindow : OdinEditorWindow public sealed partial class ExcelResolverEditorWindow : OdinEditorWindow
{ {
public ExcelResolverEditorConfig config; [SerializeField] private ExcelResolverEditorConfig config;
[MenuItem("Tools/ExcelResolver")] [MenuItem("\u272dExcelResolver\u272d/ExcelResolverEditorWindow")]
private static void OpenWindow() private static void OpenWindow()
{ {
GetWindow<ExcelResolverEditorWindow>().Show(); var window = GetWindow<ExcelResolverEditorWindow>();
window.position = GUIHelper.GetEditorWindowRect().AlignCenter(800, 500);
window.titleContent = new GUIContent("ExcelResolverEditorWindow");
} }
protected override void Initialize() protected override void Initialize()
@ -33,6 +37,7 @@ namespace Tools.ExcelResolver.Editor
private void Generate() private void Generate()
{ {
// 按钮逻辑 // 按钮逻辑
ReadExcel();
} }
} }
} }
Loading…
Cancel
Save