Browse Source

如果没有配置文件,将在全局查找配置文件并赋值

master
coffee 6 months ago
parent
commit
ee8899286c
  1. 31
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.ReadExcel.cs
  2. 13
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteDataCode.cs
  3. 9
      Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.cs

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

@ -7,11 +7,21 @@ namespace Tools.ExcelResolver.Editor
{
public sealed partial class ExcelResolverEditorWindow
{
private enum TableType
{
SingleKeyTable, // 单主键表
UnionMultiKeyTable, // 多主键表(联合索引)
MultiKeyTable, // 多主键表(独立索引)
NotKetTable, // 无主键表
ColumnTable, // 纵表
}
private void ReadExcel()
{
// 获取Excel文件
config.MakeSureDirectory();
var excelFiles = new DirectoryInfo(config.ExcelPathRoot).GetFiles("*.xlsx").Where(f => !f.Name.StartsWith("~$"));
excelResolverConfig.MakeSureDirectory();
var excelFiles = new DirectoryInfo(excelResolverConfig.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);
@ -22,9 +32,22 @@ namespace Tools.ExcelResolver.Editor
Debug.LogError($"Excel:{excelFile.Name} don't have Sheet1 !!");
continue;
}
var first = worksheet.Cells[1, 1];
Debug.Log(first.Value.ToString());
ExcelRange first = worksheet.Cells[1, 1];
switch (first)
{
}
}
}
private TableType CheckTableType(ExcelRange first)
{
string tableConfig = first.Value.ToString();
return TableType.SingleKeyTable;
}
}
}

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

@ -4,24 +4,15 @@ 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.Custom("// 代码使用工具生成,请勿随意修改");
code.Using("System");
code.Using("System.Collections.Generic");
code.Using("System.Linq");
code.NameSpace(config.GenerateDataClassNameSpace, cope =>
code.NameSpace(excelResolverConfig.GenerateDataClassNameSpace, cope =>
{
cope.Custom("[Serializable]");
// cope.Class($"")

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

@ -9,7 +9,7 @@ namespace Tools.ExcelResolver.Editor
{
public sealed partial class ExcelResolverEditorWindow : OdinEditorWindow
{
[SerializeField] private ExcelResolverEditorConfig config;
[SerializeField] private ExcelResolverEditorConfig excelResolverConfig;
[MenuItem("\u272dExcelResolver\u272d/ExcelResolverEditorWindow")]
private static void OpenWindow()
@ -21,7 +21,12 @@ namespace Tools.ExcelResolver.Editor
protected override void Initialize()
{
config ??= AssetDatabase.LoadAssetAtPath<ExcelResolverEditorConfig>("Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorConfig.asset");
if (excelResolverConfig == null)
{
string[] assetGuids = AssetDatabase.FindAssets($"ExcelResolverEditorConfig t:ExcelResolverEditorConfig");
string assetPath = AssetDatabase.GUIDToAssetPath(assetGuids[0]);
excelResolverConfig = AssetDatabase.LoadAssetAtPath<ExcelResolverEditorConfig>(assetPath);
}
}
[OnInspectorGUI]

Loading…
Cancel
Save