/// <summary> /// 导出Excel /// </summary> private void ExportExcel(List <Language> languages, List <ExportFormatEnum> exportFormats) { string filePath = mLocalizationConfigExcelExportPath; foreach (var languagege in languages) { var allExportColumn = GetExportColumnByLanguage(languagege); foreach (var exportFormat in exportFormats) { filePath = mLocalizationConfigExcelExportPath.CombinePathEx(LocalizationManager.GetLocalizationConfigFileName(exportFormat, languagege)); switch (exportFormat) { case ExportFormatEnum.Csv: ExcelToCsvUtility.ConvertExcelToCsv(mLocalizationExcelData.Tables[0], filePath, allExportColumn); break; case ExportFormatEnum.Json: ExcelToJsonUtility.ConvertExcelToJson(mLocalizationExcelData.Tables[0], filePath, allExportColumn); break; case ExportFormatEnum.Xml: ExcelToXmlUtility.ConvertExcelToXml(mLocalizationExcelData.Tables[0], filePath, allExportColumn); break; default: Debug.LogError("未知的格式 " + exportFormat); break; } } } AssetDatabase.Refresh(); }
private void ExportXmlProcess() { lock (m_ProcessResults) { bool hasError = false; int warningNum = 0; int exportXmlNum = 0; for (int i = 0; i < m_Window.OneKeyExportUI.ExcelFileList.Count; ++i) { var efi = m_Window.OneKeyExportUI.ExcelFileList[i]; var result = string.Format("<color=#ffffff>{0}、</color><color=#22b454>处理第{1}个Excel文件</color> <color=#bbbbbb>名称:{2}</color> <color=#888888>路径:{3}</color>", i + 1, i + 1, efi.Name, efi.FullName); m_ProcessResults.Add(result); Workbook workbook = new Workbook(efi.FullName); foreach (var worksheet in workbook.Worksheets) { result = string.Format(" <color=#bbbbbb>-->处理工作表:{0}</color>", worksheet.Name); m_ProcessResults.Add(result); if (worksheet.ListObjects.Count <= 0) { result = string.Format(" <color=#cca200>-->工作表中不包含插入表格,跳过处理</color>"); m_ProcessResults.Add(result); ++warningNum; } else { if (worksheet.ListObjects.Count > 1) { result = string.Format(" <color=#cca200>-->工作表中包含多个插入表格,只处理第一个表格,其他忽略</color>"); m_ProcessResults.Add(result); ++warningNum; } var convertResult = ""; result = ExcelToXmlUtility.ExoportXml(efi.FullName, m_Window.SettingUI.XmlExportDirectory, worksheet.Name, worksheet.ListObjects[0], ref convertResult); if (!string.IsNullOrEmpty(result)) { m_ProcessResults.Add(result); hasError = true; break; } else { if (convertResult != null) { m_ProcessResults.Add(convertResult); ++warningNum; } else { m_ProcessResults.Add(" <color=#bbbbbb>导出xml成功</color>"); ++exportXmlNum; } } } } if (hasError) { break; } } if (hasError) { m_ProcessResults.Add("###<color=#ff0000>================有错误发生,导出xml结束,请先修复错误,再导出xml================</color>"); } else { m_ProcessResults.Add(string.Format("###<color=#22b454>================导出xml结束,导出成功,导出{0}个xml文件,{1}个警告================</color>", exportXmlNum, warningNum)); SavePriorityConfig(); } } }