private Column CreateColumnFromAttribute(ColumnOpenXmlAttribute ca) { if (ca == null) { return(null); } Column c = new Column(); if (true == ca.Hidden) { c.Hidden = ca.Hidden; } if (ca.CustomWidth != 0) { c.Width = ca.CustomWidth; c.CustomWidth = true; } return(c); }
/// <summary> /// 获得列设置 /// </summary> /// <returns></returns> protected Columns GetColumnSetting() { int pcount = propertyInfoes.Length; if (pcount == 0) { return(null); } var cas = (from pi in propertyInfoes let ca = pi.GetCustomAttributes(typeof(ColumnOpenXmlAttribute), false).FirstOrDefault() as ColumnOpenXmlAttribute select ca).ToArray(); var casNotNull = cas.Where(x => x != null).ToArray(); if (casNotNull == null || casNotNull.Count() < 1) { return(null); } List <Column> columnList = new List <Column>(); var casGrop = from ca in casNotNull group ca by new { ca.CustomWidth, ca.Hidden }; foreach (var cg in casGrop) { int cgCount = cg.Count(); if (cgCount > 0) { ColumnOpenXmlAttribute caf = cg.FirstOrDefault(); int index = Array.IndexOf(cas, caf); int min = index + 1; int max = index + cgCount; Column c = CreateColumnFromAttribute(caf); c.Min = (uint)min; c.Max = (uint)max; columnList.Add(c); } } Columns columns = new Columns(columnList); return(columns); }