using NPOI.SS.UserModel; using System; using System.ComponentModel; using DeviceRepairAndOptimization.Common.NpoiExtend; using System.Reflection; namespace DeviceRepairAndOptimization.Biz.AM.Templates { public class FM_P0075_15 { /// /// 序号 /// [Description("序号")] public string OrderNumber = "[A,3]"; /// /// 设备型号 /// [Description("设备型号")] public string EquipmentTs = "[A,1]"; /// /// 设备编号 /// [Description("设备编号")] public string EquipmentID = "[I,1]"; /// /// 班次 /// [Description("班次")] public string Banci = "[H,3]"; /// /// 其他异常处理 /// [Description("其它异常\n及处理")] public string ExceptionContent = "[A,15]"; /// /// 点检者\n签名 /// [Description("点检者\n签名")] public string Signature = "[G,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(); 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; } } }