private void ButtonSelectConfigFile_Click(object sender, RoutedEventArgs e) { OpenFileDialog fileDialog = new OpenFileDialog { InitialDirectory = Environment.CurrentDirectory, Filter = "ini 配置文件|*.ini", Multiselect = false, }; if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ViewModel.ConfigFilePath = fileDialog.FileName; } ; PushMessage("加载配置文件中。\n"); if (Workbook != null) { Workbook.Save(); Workbook.Close(); SheetName2ExcelSheet.Clear(); SheetConfigModels.Clear(); BodyParams.Clear(); SubjectParams.Clear(); MailToParams.Clear(); OutPutText.Clear(); ParamsDict.Clear(); buttonStart.Click -= ButtonStart_Click; buttonSendTestMail.Click -= ButtonSendTestMail_Click; } bool loadSuccess = LoadConfig(); if (loadSuccess) { buttonStart.Click += ButtonStart_Click; buttonSendTestMail.Click += ButtonSendTestMail_Click; } }
/// <summary> /// 加载配置文件 /// </summary> /// <returns></returns> private bool LoadConfig() { string configPath = ViewModel.ConfigFilePath; if (File.Exists(configPath)) { try { MainConfigModel = new MainConfigModel { FilePath = IniFileReadUtil.ReadIniData("Main", "FilePath", null, configPath), SuccessSimple = IniFileReadUtil.ReadIniData("Main", "SuccessSimple", null, configPath), SuccessSimpleLocation = IniFileReadUtil.ReadIniData("Main", "SuccessSimpleLocation", null, configPath), SheetNames = IniFileReadUtil.ReadIniData("Main", "SheetNames", null, configPath).Split(',').ToList(), MainSheetName = IniFileReadUtil.ReadIniData("Main", "MainSheetName", null, configPath), TemplatePath = IniFileReadUtil.ReadIniData("Main", "TemplatePath", null, configPath), BodyParamCount = int.Parse(IniFileReadUtil.ReadIniData("Main", "BodyParamCount", null, configPath)), SubjectParamCount = int.Parse(IniFileReadUtil.ReadIniData("Main", "SubjectParamCount", null, configPath)), MailToParamCount = int.Parse(IniFileReadUtil.ReadIniData("Main", "MailToParamCount", null, configPath)), AttachmentCount = int.Parse(IniFileReadUtil.ReadIniData("Main", "AttachmentCount", null, configPath)), }; MailConfigModel = new MailConfigModel { MailTo = IniFileReadUtil.ReadIniData("Mail", "MailTo", null, configPath), MailAddress = IniFileReadUtil.ReadIniData("Mail", "MailAddress", null, configPath), MailPassword = IniFileReadUtil.ReadIniData("Mail", "MailPassword", null, configPath), MailSubject = IniFileReadUtil.ReadIniData("Mail", "MailSubject", null, configPath), SMTPAddress = IniFileReadUtil.ReadIniData("Mail", "SMTPAddress", null, configPath), Port = int.Parse(IniFileReadUtil.ReadIniData("Mail", "Port", null, configPath)), EnableSsl = bool.Parse(IniFileReadUtil.ReadIniData("Mail", "EnableSsl", null, configPath)), Priority = int.Parse(IniFileReadUtil.ReadIniData("Mail", "Priority", null, configPath)), }; foreach (var sheetName in MainConfigModel.SheetNames) { SheetConfigModel sheetConfigModel = new SheetConfigModel { StartingLine = int.Parse(IniFileReadUtil.ReadIniData(sheetName, "StartingLine", null, configPath)), EndLine = int.Parse(IniFileReadUtil.ReadIniData(sheetName, "EndLine", null, configPath)), UniquelyIdentifiesLine = IniFileReadUtil.ReadIniData(sheetName, "UniquelyIdentifiesLine", null, configPath), }; SheetConfigModels[sheetName] = sheetConfigModel; } for (int i = 0; i < MainConfigModel.BodyParamCount; i++) { BodyParams.Add(IniFileReadUtil.ReadIniData("BodyParams", i.ToString(), null, configPath)); } for (int i = 0; i < MainConfigModel.SubjectParamCount; i++) { SubjectParams.Add(IniFileReadUtil.ReadIniData("SubjectParams", i.ToString(), null, configPath)); } for (int i = 0; i < MainConfigModel.MailToParamCount; i++) { MailToParams.Add(IniFileReadUtil.ReadIniData("MailToParams", i.ToString(), null, configPath)); } for (int i = 0; i < MainConfigModel.AttachmentCount; i++) { Attachments.Add(IniFileReadUtil.ReadIniData("Attachments", i.ToString(), null, configPath)); } //加载工作簿相关内容 Workbook = LoadWorkbook(MainConfigModel.FilePath); foreach (var sheetName in MainConfigModel.SheetNames) { SheetName2ExcelSheet[sheetName] = LoadWorksheet(Workbook, sheetName); } PushMessage("读取成功。\n"); return(true); } catch (Exception ex) { PushMessage("读取失败。\n"); PushMessage(ex.Message + "\n"); return(false); } } else { PushMessage("找不到配置文件!\n"); return(false); } }