public void WriteConditionalFormattingIconSet(IconSet iconSet, out CT_IconSet cfIconSet) { if (iconSet == null) { cfIconSet = null; return; } List <CT_Cfvo> ct_cfvo_list = new List <CT_Cfvo>(); foreach (var ct_cfvo in iconSet.CFVOList) { ct_cfvo_list.Add(new CT_Cfvo { val = ct_cfvo.Value, type = (ST_CfvoType)ct_cfvo.Type //1-1 }); } cfIconSet = new CT_IconSet { cfvo = ct_cfvo_list.ToArray(), iconSet = (ST_IconSetType)iconSet.IconSetType,//1-1 showValue = iconSet.ShowValue }; }
public XSSFIconMultiStateFormatting CreateMultiStateFormatting(IconSet iconSet) { // Is it already there? if (_cfRule.IsSetIconSet() && _cfRule.type == ST_CfType.iconSet) { return(MultiStateFormatting as XSSFIconMultiStateFormatting); } // Mark it as being an Icon Set _cfRule.type = (ST_CfType.iconSet); // Ensure the right element CT_IconSet icons = null; if (_cfRule.IsSetIconSet()) { icons = _cfRule.iconSet; } else { icons = _cfRule.AddNewIconSet(); } // Set the type of the icon set if (iconSet.name != null) { ST_IconSetType xIconSet = XmlEnumParser <ST_IconSetType> .ForName(iconSet.name, ST_IconSetType.Item3TrafficLights1); icons.iconSet = xIconSet; } // Add a default set of thresholds int jump = 100 / iconSet.num; ST_CfvoType type = (ST_CfvoType)Enum.Parse(typeof(ST_CfvoType), RangeType.PERCENT.name); for (int i = 0; i < iconSet.num; i++) { CT_Cfvo cfvo = icons.AddNewCfvo(); cfvo.type = (type); cfvo.val = (i * jump).ToString(); } // Wrap and return return(new XSSFIconMultiStateFormatting(icons)); }
public void WriteConditionalFormattingRule(CFRule rule, string firstCell, out CT_CfRule cfRule) { ST_CfType st_cftype = (ST_CfType)rule.Type; CT_ColorScale ct_colorscale = null; CT_DataBar ct_databar = null; CT_IconSet ct_iconset = null; if (rule.Type == CFType.ColorScale) { WriteConditionalFormattingColorScale(rule.ColorScale, out ct_colorscale); } if (rule.Type == CFType.DataBar) { WriteConditionalFormattingDataBar(rule.DataBar, out ct_databar); } if (rule.Type == CFType.IconSet) { WriteConditionalFormattingIconSet(rule.IconSet, out ct_iconset); } if (CFRule.RequiresDxf(rule.Type)) { List <string> formulas = new List <string>(); if (!string.IsNullOrEmpty(rule.Formula1)) { formulas.Add(rule.Formula1); } if (!string.IsNullOrEmpty(rule.Formula2)) { formulas.Add(rule.Formula2); } if (!string.IsNullOrEmpty(rule.Formula3)) { formulas.Add(rule.Formula3); } cfRule = new CT_CfRule { typeSpecified = true, type = st_cftype, priority = rule.Priority, formula = formulas.ToArray(), operatorSpecified = rule.Operator.HasValue, @operator = rule.Operator.HasValue ? (ST_ConditionalFormattingOperator)rule.Operator.Value : ST_ConditionalFormattingOperator.beginsWith, text = rule.Text, }; cfRule = SetDxfStyle(cfRule, rule.Style); switch (rule.Type) { case CFType.Top10: cfRule.percent = rule.IsPercent; cfRule.bottom = rule.IsBottom; cfRule.rankSpecified = rule.Rank.HasValue; cfRule.rank = (uint)rule.Rank.Value; break; case CFType.AboveAverage: cfRule.aboveAverage = rule.IsAboveAverage; cfRule.equalAverage = rule.IsEqualAverage; cfRule.stdDevSpecified = rule.IsStdDev; cfRule.stdDev = rule.StdDev; break; case CFType.TimePeriod: cfRule.timePeriodSpecified = true; cfRule.timePeriod = (ST_TimePeriod)rule.TimePeriod; break; } return; } cfRule = new CT_CfRule { typeSpecified = true, type = st_cftype, colorScale = ct_colorscale, dataBar = ct_databar, iconSet = ct_iconset, priority = rule.Priority }; }
/*package*/ internal XSSFIconMultiStateFormatting(CT_IconSet iconset) { _iconset = iconset; }