private void GainAccess() { if (ExcelParameterManager.AccessListDict.ContainsKey(ExcelName) && ExcelParameterManager.AccessDict.ContainsKey(ExcelName)) { _accessList = ExcelParameterManager.AccessListDict[ExcelName]; _dict = ExcelParameterManager.AccessDict[ExcelName]; return; } foreach (var entry in ExcelManager.Dict) { var array = entry.Key.Split(','); var result = new List <FieldValue>(); var value = entry.Value; foreach (var field in Fields) { var val = field.Indexs != null?GetValues(field, value) : GetValue(field, value); if (val != null) { result.Add(val); } } _accessList.AddRange(result); _dict.Add(array[1], result); } ExcelParameterManager.AddAccess(ExcelName, _accessList, _dict); }
public void Program() { QuestionManager.Clear(); LogManager.Init(); ParameterManager.Init(Folder); DCDYTBManager.Init(); ExcelParameterManager.Clear(); if (!Init()) { OutputMessage("00", "初始化失败,程序终止", ProgressResultTypeEnum.Fail); return; } OutputMessage("00", "成功初始化", ProgressResultTypeEnum.Pass); foreach (var id in _ruleIds) { var rule = _rules.FirstOrDefault(e => e.ID == id.ToString()); if (rule != null) { var sb = new StringBuilder(rule.RuleName); var result = ProgressResultTypeEnum.Pass; try { rule.Check(); } catch (AggregateException ae) { foreach (var exp in ae.InnerExceptions) { sb.Append(exp.Message + "\r\n"); } result = ProgressResultTypeEnum.Fail; } catch (Exception ex) { result = ProgressResultTypeEnum.Fail; sb.Append(ex.ToString()); } if (result != ProgressResultTypeEnum.Pass) { QuestionManager.Add(new Question { Code = rule.ID, Name = rule.RuleName, Description = sb.ToString() }); } if (OutputMessage(rule.ID, sb.ToString(), result) == true) { break; } } } _reportPath = QuestionManager.Save(ReportPath); //PDFHelper.Save(_reportPath, ReportPDFPath); //PdfHelper2.SavePdf(_reportPath, ReportPDFPath); PdfHelper2.Convert(_reportPath, ReportPDFPath); }
private void ExportExcelbutton_Click(object sender, EventArgs e) { var saveFile = DialogClass.SaveFile("2003Excel文件|*.xls", "请选择保存文件路径"); if (string.IsNullOrEmpty(saveFile)) { return; } var modelFile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Excels", System.Configuration.ConfigurationManager.AppSettings["Statistic"]); try { ExcelParameterManager.ExportExcel(modelFile, saveFile, this.dataGridView1); } catch (Exception ex) { MessageBox.Show("发生错误:" + ex.Message); return; } MessageBox.Show("成果导出!"); }
private void Analyze(ISheet sheet, int startLine) { IRow row = null; var info = string.Empty; for (var i = startLine; i <= sheet.LastRowNum; i++) { row = sheet.GetRow(i); if (row == null) { break; } #region 核对乡镇代码与乡镇名称的正确性 var xzc = GetXZC(row); if (string.IsNullOrEmpty(xzc.XZCDM) && string.IsNullOrEmpty(xzc.XZCMC)) { continue; } if (xzc.XZCDM == SM || xzc.XZCMC == SM)//合计 { //var totals = GetValues(row); CheckTotal(row);//核对合计数值 break; } var entry = List.FirstOrDefault(e => e.XZCDM.ToLower() == xzc.XZCDM.ToLower()); if (entry == null) { info = string.Format("第{0}行:未找到行政区代码为{1}的乡镇信息,请核对", i + 1, xzc.XZCDM); _paralleQuestions.Add(new Question { Code = "6101", Name = Name, TableName = ExcelName, Project = CheckProject.汇总表与数据库图层逻辑一致性, BSM = (i + 1).ToString(), Description = info }); continue; } if (entry.XZCMC.ToLower() != xzc.XZCMC.ToLower()) { info = string.Format("第{0}行:当前乡镇代码【{1}】对应的乡镇名称【{2}】与数据库乡镇名称【{3}】不符,请核对", i + 1, xzc.XZCDM, xzc.XZCMC, entry.XZCMC); _paralleQuestions.Add(new Question { Code = "6101", Name = Name, Project = CheckProject.汇总表与数据库图层逻辑一致性, BSM = (i + 1).ToString(), Description = info }); continue; } #endregion #region //读取其他字段的数据值 并且核对数值的正确性 var values = GetValues(row); foreach (var item in values) { if (string.IsNullOrEmpty(item.Val.ToString())) { continue; } info = string.Empty; switch (item.Type) { case ExcelType.Double: var a = .0; if (!double.TryParse(item.Val.ToString(), out a)) { info = string.Format("乡镇代码【{0}】乡镇名称【{1}】中字段【{2}】的值与要求的格式不一致", xzc.XZCDM, xzc.XZCMC, item.Title); } break; case ExcelType.Int: var b = 0; if (!int.TryParse(item.Val.ToString(), out b)) { info = string.Format("乡镇代码【{0}】乡镇名称【{1}】中字段【{2}】的值与要求的格式不一致", xzc.XZCDM, xzc.XZCMC, item.Title); } break; } if (!string.IsNullOrEmpty(info)) { _paralleQuestions.Add(new Question { Code = "6101", Name = Name, TableName = ExcelName, BSM = (i + 1).ToString(), Project = CheckProject.汇总表与数据库图层逻辑一致性, Description = info }); } } #endregion if (_excelDict.ContainsKey(xzc.XZCDM)) { info = string.Format("乡镇代码【{0}】乡镇名称【{1}】存在重复数据,请核对", xzc.XZCDM, xzc.XZCMC); _paralleQuestions.Add(new Question { Code = "6101", Name = Name, TableName = ExcelName, BSM = (i + 1).ToString(), Project = CheckProject.汇总表与数据库图层逻辑一致性, Description = info }); } else { _excelList.AddRange(values); _excelDict.Add(xzc.XZCDM, values); } } ExcelParameterManager.AddExcel(ExcelName, _excelList, _excelDict); }