Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        /// <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);
        }