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); } }
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; } }
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; } }
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); }