Esempio n. 1
0
        //第1个参数,Excel所在路径格式:Excel
        //第2个以后参数可选参数

        /*
         * 公共参数格式:PublicSetting(是否包含子目录=true|是否充许数字型为空=true|是否需要检查=false|ClientPath=)
         * 公共参数格式:PublicSetting(IsIncludeSubfolder=true|IsAllowedNullNumber=true|IsNeedCheck=false)
         * 公共参数格式:MergeTable()
         * 公共参数格式:MergeTable(IsMerge=true|IsMergeSingle=false|item=item100,item101|monster=monster301,monster306)
         * 多语言:MoreLanguage(IsMoreLanguage=false|NeedLanguage=_ft|OtherLanguage=_yn,_English|IsAddSaveType=false|IsGetSourceTextFile=false)
         * lang参数:Lang(IsLang=true|LangPath=lang.txt|IsLangNull=false)
         * config参数:Config(ConfigPat=config.txt)
         * 只导出部分表格式(优先判定):OnlyExportPartExcel(item|skill)
         * 指定不导出哪些表格式(后判定):ExceptExportExcel(item|skill)
         * 导出Lua参数格式:ExportLua(是否导出Lua=true|导出路径=Save/Lua|是否按原目录结构保存=ture|是否需要生成头部信息|数组类型是否需要[1]=值格式|导出文件内容是否以文件名开头|导出时在文件名前添加前缀)
         * 导出Lua参数格式:ExportLua(IsExport=true|ExportPath=Save/Lua|IsExportKeepDirectoryStructure=ture|IsNeedColumnInfo=ture|IsArrayFieldName=true|IsTableNameStart=false|IsFormat=true|ExportNameBeforeAdd=cfg_)
         * 导出json参数格式:ExportJson(是否导出Lua=true|导出路径=Save/Lua|是否按原目录结构保存=true|包含在一个json array的形式=false|是否包含主键列对应的键值对=true|是否格式化=true)
         * 导出json参数格式:ExportJson(IsExport=true|ExportPath=Save/Json|IsExportKeepDirectoryStructure=true|IsArrayFormat=false|IsKeyColumnValue=true|IsFormat=true|ExportNameBeforeAdd=tb_)
         * 导出txt参数格式:ExportTxt(IsExport=true|ExportPath=Save/Txt|IsExportKeepDirectoryStructure=true|ExportNameBeforeAdd=tb_)
         * 导出mysql参数格式:ExportMySQL(IsExport=true|Server=127.0.0.1|Port=3306|Uid=root|Password=root|Database=mydb|Charset=utf8)
         * 导出sqlite参数格式:
         * 导出erlang参数格式:ExportErlang(IsExport=true|ExportPath=Save/Erl|IsExportKeepDirectoryStructure=true|IsFormat=true|ExportNameBeforeAdd=tb_)
         * 导出hrl参数格式:ExportHrl(IsExport=true|ExportPath=Save/hrl|IsExportKeepDirectoryStructure=true|ExportNameBeforeAdd=tb_)
         * 导出luafile参数格式:ExportLuaFile(IsExport=true|ExportPath=Save/luafile|IsExportKeepDirectoryStructure=true)
         *
         * AppLog参数格式:AppLog(IsPrintLog=true|IsPrintLogWarning=true|IsPrintLogError=true|IsSaveLog=true|IsSaveLogWarning=true|IsSaveLogError=true)
         */

        private static void Main(string[] args)
        {
            LoadResourceDll.RegistDLL();
            try
            {
                //if(!StringModule.GetDotNetVersion("4.0"))
                //{
                //    AppLog.LogWarning("警告:你可能未安装framework4.0,请下载安装:\n"+"https://microsoft-net-framework-3-0.updatestar.com", ConsoleColor.Yellow);
                //}

                AppLog.Log("检查传入参数...", ConsoleColor.White);
                if (args.Length < 1)
                {
                    AppLog.LogErrorAndExit("错误:未输入Excel表格所在目录,第1个参数必须为Excel所在目录");
                }
                if (!Directory.Exists(args[0]))
                {
                    AppLog.LogErrorAndExit(string.Format("错误:输入的Excel表格所在目录不存在,路径为{0}", args[0]));
                }

                ExcelFolder.ExcelPath = Path.GetFullPath(args[0]);

                //从第2个参数起,检查可选参数
                for (int i = 1; i < args.Length; ++i)
                {
                    BatParamInfo batParamInfo = new BatParamInfo(args[i], i);
                    AppValues.BatParamInfo.Add(batParamInfo.ParamName, batParamInfo);
                }

                AppLog.GetParamValue();
                AppLang.ReadLangData();
                AppConfig.ReadConfig();

                AppLanguage.GetParamValue();
                ExcelFolder.GetExportTables();


                AppLanguage.GetLanguageDictData();


                //解析Excel表格并替换翻译
                TableAnalyzeHelper.AnalyzeAllTable(ExcelFolder.ExportTables);

                //多语言下,创建多语言集合,即将简体文本提出取来待翻译
                AppLanguage.CreateLanguageDictFile();

                //合并表格
                BatExportMergeSetting batExportMergeSetting = new BatExportMergeSetting();
                AppValues.MergeTableList = batExportMergeSetting.MergeTableList;


                //检查表格
                AppLog.Log("开始检查表格...");
                CheckTableInfo.CheckTable();

                //开始导出 AppValues.TableInfo

                ExportTxt.ExportToTxt();
                ExportJson.ExportToJson();
                ExportErlang.ExportToErlang();
                ExportServerJson.ExportToJson();
                ExportLua.ExportToLua();
                ExportMySQL.ExportToMySQL();



                AppLog.Log("\n全部文件导出成功");
#if DEBUG
                Console.ReadKey();
#endif
            }
            catch (Exception e)
            {
                if (AppValues.App_Config_Error == true)
                {
                    AppLog.LogErrorAndExit(e.ToString());
                }
                else
                {
#if DEBUG
                    AppLog.LogErrorAndExit(e.ToString());
#endif
                    //  AppLog.LogErrorAndExit("\n出现错误,请检查配置表");
                }
            }
        }