internal static ISingleCellValueReader GetDefaultSingleCellValueReader(MemberInfo member) { ExcelColumnNameAttribute colummnNameAttribute = member.GetCustomAttribute <ExcelColumnNameAttribute>(); if (colummnNameAttribute != null) { return(new ColumnNameValueReader(colummnNameAttribute.Name)); } ExcelColumnIndexAttribute colummnIndexAttribute = member.GetCustomAttribute <ExcelColumnIndexAttribute>(); if (colummnIndexAttribute != null) { return(new ColumnIndexValueReader(colummnIndexAttribute.Index)); } return(new ColumnNameValueReader(member.Name)); }
/// <summary> /// 通过反射和特性获取导出列;并生成列头对象 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static List <ExcelParameterVo> GetExcelParameters() { Type typeFromHandle = typeof(T); List <ExcelParameterVo> excelParameters = new List <ExcelParameterVo>(); PropertyInfo[] properties = typeFromHandle.GetProperties();//通过反射获取到对象属性 foreach (PropertyInfo propertyInfo in properties) { //通过反射获取自定义特性 ExcelColumnNameAttribute excelColumnNameAttribute = ((MemberInfo)propertyInfo).GetCustomAttribute <ExcelColumnNameAttribute>(); if (excelColumnNameAttribute != null) { excelParameters.Add(new ExcelParameterVo { ColumnName = excelColumnNameAttribute.ColumnName, ColumnWidth = excelColumnNameAttribute.ColumnWith, Sort = excelColumnNameAttribute.Sort, Property = propertyInfo, }); } } return(excelParameters); }
public void Ctor_String(string name) { var attribute = new ExcelColumnNameAttribute(name); Assert.Equal(name, attribute.Name); }