using NPOI.SS.UserModel; using System; using System.ComponentModel; using TsSFCDevice.Client.Launch.Common.NpoiExtend; using System.Reflection; namespace TsSFCDevice.Client.Launch.PreserveTemplate { public class FM_P0075_17 { /// /// 设备名称Equipment name: /// [Description("设备名称Equipment name:")] public string EquipmentName = "[A,1]"; /// /// 设备编号Equipment number: /// [Description("设备编号Equipment number:")] public string EquipmentID = "[A,2]"; /// /// 安装地点Installation site: /// [Description("安装地点Installation site:")] public string InstallationSite = "[I,1]"; /// /// 设备型号Equipment model: /// [Description("设备型号Equipment model:")] public string EquipmentTs = "[I,2]"; /// /// 序号 /// [Description("序号")] public string OrderNumber = "[A,4]"; /// /// 异常备注: /// [Description("异常备注:")] public string ExceptionContent = "[A,14]"; /// /// 保养人签字 /// [Description("保养人签字")] public string Signature = "[K,14]"; /// /// 保养日期 /// [Description("保养日期")] public string MaintenanceDate = "[K,15]"; public ArgumentException CheckCurrentSheet(ISheet sheet) { try { var type = this.GetType(); FieldInfo[] fields = type.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (var item in fields) { string Description = string.Empty; object[] attrs = item.GetCustomAttributes(typeof(DescriptionAttribute), false); if (null != attrs && attrs.Length > 0) { DescriptionAttribute description = (DescriptionAttribute)attrs[0]; Description = description.Description; } string field = item.GetValue(this)?.ToString(); if (item.Name == "ExceptionContent" || item.Name == "Signature" || item.Name == "MaintenanceDate") { ICell cell = sheet.LocateCellByAddress(field); if (cell.CellType != CellType.String) { int RowIndex = cell.RowIndex; bool HasError = true; while (RowIndex < sheet.LastRowNum) { RowIndex++; if (sheet.GetRow(RowIndex).Cells[cell.ColumnIndex].CellType == CellType.String && Description.Equals(sheet.GetRow(RowIndex).Cells[cell.ColumnIndex].StringCellValue, StringComparison.CurrentCultureIgnoreCase) ) { HasError = false; break; } } if (HasError) { return new ArgumentException($"当前点检表格式不正确,操作失败!"); } } } else { string CellValue = sheet.LocateCellByAddress(field).StringCellValue; if (!Description.Equals(CellValue, StringComparison.CurrentCultureIgnoreCase)) return new ArgumentException($"当前点检表格式不正确,操作失败!"); } } } catch (Exception ex) { return new ArgumentException(ex.Message); } return null; } } }