Exemplo n.º 1
0
    /// <summary>
    /// 读取所有的Excel文件
    /// </summary>
    void ReadAllExcel()
    {
        AutoGenerateCode.Clear();
        List <string> files = new List <string>();

        FileHelper.CheckPath(path);
        FileHelper.CheckPath(jsonPath);
        FileHelper.CheckPath(scriptPath);
        FileHelper.CheckPath(scriptableObjectPath);

        foreach (string file in Directory.GetFiles(path, "*.xlsx"))
        {
            files.Add(file);
        }

        foreach (string excelPath in files)
        {
            using (FileStream stream = File.Open(excelPath, FileMode.Open, FileAccess.Read))
            {
                IExcelDataReader excelDataReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                DataSet          result          = excelDataReader.AsDataSet();
                AutoGenerateCode.CreatJsonByExcel("", jsonPath, result, start_Colum, start_Row);
                AutoGenerateCode.CreatAttributeClass(scriptPath, result, start_Colum, start_Row);
            }
        }

        AutoGenerateCode.CreatJsonDataGroup(scriptableObjectName, scriptPath, jsonPath);
        AssetDatabase.Refresh();
    }
Exemplo n.º 2
0
    private void OnGUI()
    {
        GUILayout.Space(10);
        GUI.skin.label.fontSize         = 30;
        GUI.skin.label.normal.textColor = Color.gray;
        GUI.skin.label.alignment        = TextAnchor.MiddleCenter;
        GUILayout.Label("数据编辑器");
        EditorGUILayout.LabelField("Excel路径:", EditorStyles.boldLabel);
        Rect rect = EditorGUILayout.GetControlRect();

        if ((Event.current.type == EventType.DragUpdated || Event.current.type == EventType.DragExited) &&
            rect.Contains(Event.current.mousePosition))
        {
            path = DragAndDrop.paths[0];
        }

        if (Path.GetFileName(path) != "")
        {
            path = path.Replace(Path.GetFileName(path), "");
        }

        path = EditorGUI.TextField(rect, path);

        GUILayout.Space(10);
        EditorGUILayout.LabelField("Json路径:", EditorStyles.boldLabel);
        EditorGUILayout.TextField(jsonPath);
        GUILayout.Space(10);
        EditorGUILayout.LabelField("Scripts路径:", EditorStyles.boldLabel);
        EditorGUILayout.TextField(scriptPath);
        GUILayout.Space(10);
        EditorGUILayout.LabelField("Asset路径:", EditorStyles.boldLabel);
        EditorGUILayout.TextField(scriptableObjectPath);
        GUILayout.Space(10);
        EditorGUILayout.LabelField("Excel数据起始行:");
        start_Row = EditorGUILayout.IntField(start_Row);
        GUILayout.Space(10);
        EditorGUILayout.LabelField("Excel数据起始列:");
        start_Colum = EditorGUILayout.IntField(start_Colum);

        GUILayout.Space(10);
        if (GUILayout.Button("读取Excel"))
        {
            ReadAllExcel();
        }

        GUILayout.Space(10);
        if (GUILayout.Button("生成资源文件"))
        {
            AutoGenerateCode.CreatScriptableObject(scriptableObjectName, scriptableObjectPath);
        }

        EditorGUILayout.LabelField("Excel格式要求:", EditorStyles.boldLabel);
        EditorGUILayout.LabelField("表中必须有变量类型且位于首行,起始行从变量类型行开始计算", EditorStyles.boldLabel);
    }