Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 2
0
    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();
            }
        }
    }