Esempio n. 1
0
    private bool IsEnum(string name)
    {
        Header header;

        switch (s_exportLanguage)
        {
        case ExportLanguage.CSharp:
            if (CsvMaker_CSharp.TryGetHeader(name, out header))
            {
                return(header.isEnum);
            }
            return(false);

        case ExportLanguage.Java:
            if (CsvMaker_Java.TryGetHeader(name, out header))
            {
                return(header.isEnum);
            }
            return(false);

        case ExportLanguage.TypeScript:
            if (CsvMaker_TypeScript.TryGetHeader(name, out header))
            {
                return(header.isEnum);
            }
            return(false);

        default:
            Debug.LogError("IsEnum error exportLanguage:" + s_exportLanguage);
            return(false);
        }
    }
Esempio n. 2
0
    private void initCsv()
    {
        m_csvBuilder = new StringBuilder();
        m_csvBuilder.Append(m_headers[0].name);
        for (int i = 1; i < m_headers.Length; i++)
        {
            var header = m_headers[i];
            if (header.skip)
            {
                continue;
            }
            m_csvBuilder.Append(CsvConfig.delimiter);
            m_csvBuilder.Append(header.name);
        }
        m_csvBuilder.Append("\n");

        //读取代码导出由Unity改为本工具后,不再需要类型信息
        //         m_csvBuilder.Append(m_rawTypes[0]);
        //         for (int i = 1; i < m_rawTypes.Length; i++) {
        //             var header = m_headers[i];
        //             if (header.skip) {
        //                 continue;
        //             }
        //             var rawType = m_rawTypes[i];
        //             m_csvBuilder.Append(CsvConfig.delimiter);
        //             m_csvBuilder.Append(rawType);
        //         }
        //         m_csvBuilder.Append("\n");

        switch (s_exportLanguage)
        {
        case ExportLanguage.CSharp:
            CsvMaker_CSharp.InitCsvDefine();
            break;

        case ExportLanguage.Java:
            CsvMaker_Java.InitCsvDefine();
            break;

        case ExportLanguage.TypeScript:
            CsvMaker_TypeScript.InitCsvDefine();
            break;

        default:
            break;
        }
    }
Esempio n. 3
0
    private void rowToDefine(IRow row)
    {
        if (m_defineIndex <= 0)
        {
            return;
        }
        ICell cell = row.GetCell(m_defineIndex);

        if (cell == null)
        {
            return;
        }
        object value = getCellValue(cell);

        if (value == null)
        {
            return;
        }

        string valueType = m_cellTypes[0];

        switch (s_exportLanguage)
        {
        case ExportLanguage.CSharp:
            CsvMaker_CSharp.AddCsvDefine(valueType, value, getCellValue(row.GetCell(0)));
            break;

        case ExportLanguage.Java:
            CsvMaker_Java.AddCsvDefine(valueType, value, getCellValue(row.GetCell(0)));
            break;

        case ExportLanguage.TypeScript:
            CsvMaker_TypeScript.AddCsvDefine(valueType, value, getCellValue(row.GetCell(0)));
            break;

        default:
            break;
        }
    }
Esempio n. 4
0
    private void exportCsv(string dirPath, int[] CheckedIndices, char type, string codePaths, bool exportCode)
    {
        string localPath;

        if (type == 'C')
        {
            localPath = "client";
        }
        else
        {
            localPath = "server";
        }
        if (!Directory.Exists(localPath))
        {
            Directory.CreateDirectory(localPath);
        }
        if (exportCode && s_exportLanguage == ExportLanguage.TypeScript)
        {
            CsvMaker_TypeScript.InitCatalog();
        }
        string headExtend;
        string csvExtend;
        string readerExtend;
        int    offset = m_config.rootPath.Length + 1;
        int    slot = 0;
        string csvName = null, csvDir = null, path = null;
        string localCsvPath = null;

        for (int i = 0; i < m_excelPaths.Count; i++)
        {
            m_filePath = m_excelPaths[i];
            if (CheckedIndices != null)
            {
                //选择模式
                if (slot >= CheckedIndices.Length)
                {
                    break;
                }
                if (CheckedIndices[slot] != i)
                {
                    continue;
                }
                ++slot;
                getFileName(m_filePath, out csvName, out csvDir);
                if (m_setting.exportDir && csvDir != null)
                {
                    path         = Path.Combine(dirPath, csvDir + "/" + csvName + ".csv");
                    localCsvPath = Path.Combine(localPath, csvDir + "/" + csvName + ".csv");
                }
                else
                {
                    path         = Path.Combine(dirPath, csvName + ".csv");
                    localCsvPath = Path.Combine(localPath, csvName + ".csv");
                }
                if (!Directory.Exists(dirPath))
                {
                    Directory.CreateDirectory(dirPath);
                }
            }
            else
            {
                getFileName(m_filePath, out csvName, out csvDir);
                //同步模式,检查表格是否已经存在
                if (m_setting.exportDir && csvDir != null)
                {
                    path         = Path.Combine(dirPath, csvDir + "/" + csvName + ".csv");
                    localCsvPath = Path.Combine(localPath, csvDir + "/" + csvName + ".csv");
                }
                else
                {
                    path         = Path.Combine(dirPath, csvName + ".csv");
                    localCsvPath = Path.Combine(localPath, csvName + ".csv");
                }
                if (!File.Exists(path))
                {
                    continue;
                }
            }

            bool need = ReadExcel(m_filePath, type, initCsv, rowToCsv);
            if (!need)
            {
                continue;
            }
            string csvText = m_csvBuilder.ToString();
            csvText = Regex.Replace(csvText, "(?<!\r)\n|\r\n", "\n");

            File.WriteAllText(path, csvText);
            File.WriteAllText(localCsvPath, csvText);
            Debug.Log("导出Csv:" + path);

            if (exportCode)
            {
                switch (s_exportLanguage)
                {
                case ExportLanguage.CSharp:
                    CsvMaker_CSharp.MakeCsvClass(codePaths, csvName, m_headers, m_rawTypes);
                    break;

                case ExportLanguage.Java:
                    CsvMaker_Java.MakeCsvClass(codePaths, csvName, m_headers, m_rawTypes);
                    break;

                case ExportLanguage.TypeScript:
                    CsvMaker_TypeScript.AddCatalog(csvName);
                    TryGetExtend("TypeScript", "extendHead", csvName, out headExtend);
                    TryGetExtend("TypeScript", "extendCsv", csvName, out csvExtend);
                    TryGetExtend("TypeScript", "extendReader", csvName, out readerExtend);
                    CsvMaker_TypeScript.MakeCsvClass(codePaths, csvName, m_headers, m_rawTypes, headExtend, csvExtend, readerExtend);
                    break;

                default:
                    break;
                }
            }
            if (m_defineIndex > 0)
            {
                string[] codePathArrray = codePaths.Split(';');
                foreach (string codePath in codePathArrray)
                {
                    if (!Directory.Exists(codePath))
                    {
                        Directory.CreateDirectory(codePath);
                    }
                    switch (s_exportLanguage)
                    {
                    case ExportLanguage.CSharp:
                        CsvMaker_CSharp.MakeCsvDefine(codePath, m_defineName);
                        break;

                    case ExportLanguage.Java:
                        CsvMaker_Java.MakeCsvDefine(codePath, m_defineName);
                        break;

                    case ExportLanguage.TypeScript:
                        CsvMaker_TypeScript.MakeCsvDefine(codePath, m_defineName);
                        break;

                    default:
                        break;
                    }
                }
            }
        }
        if (exportCode && s_exportLanguage == ExportLanguage.TypeScript)
        {
            string[] codePathArrray = codePaths.Split(';');
            foreach (string codePath in codePathArrray)
            {
                if (!Directory.Exists(codePath))
                {
                    Directory.CreateDirectory(codePath);
                }
                CsvMaker_TypeScript.MakeCatalog(codePath);
            }
        }
        Debug.Log("导出Csv完成:" + type);
    }