private CFRule GetConditionalFormattingRule(CT_CfRule ct_cfrule) { CFRule rule = new CFRule((CFType)ct_cfrule.type, ct_cfrule.priority); if (ct_cfrule.formula != null) { string for1 = null, for2 = null, for3 = null; if (ct_cfrule.formula.Length > 0) for1 = ct_cfrule.formula[0]; if (ct_cfrule.formula.Length > 1) for2 = ct_cfrule.formula[1]; if (ct_cfrule.formula.Length > 2) for3 = ct_cfrule.formula[2]; rule.Formula1 = for1; rule.Formula2 = for2; rule.Formula3 = for3; } switch (ct_cfrule.type) { case ST_CfType.iconSet: rule.IconSet = new IconSet { IconSetType = (IconSetType)ct_cfrule.iconSet.iconSet, ShowValue = ct_cfrule.iconSet.showValue, CFVOList = ConvertCFVOList(ct_cfrule.iconSet.cfvo) }; break; case ST_CfType.dataBar: rule.DataBar = new DataBar { CFVOList = ConvertCFVOList(ct_cfrule.dataBar.cfvo), Color = ConvertColor(ct_cfrule.dataBar.color) }; break; case ST_CfType.colorScale: rule.ColorScale = new ColorScale { CFVOList = ConvertCFVOList(ct_cfrule.colorScale.cfvo), Colors = ConvertColorList(ct_cfrule.colorScale.color) }; break; case ST_CfType.timePeriod: rule.TimePeriod = (TimePeriod)ct_cfrule.timePeriod; break; case ST_CfType.top10: rule.IsPercent = ct_cfrule.percent; rule.IsBottom = ct_cfrule.bottom; rule.Rank = (int)ct_cfrule.rank; break; case ST_CfType.aboveAverage: rule.IsAboveAverage = ct_cfrule.aboveAverage; rule.IsEqualAverage = ct_cfrule.equalAverage; rule.IsStdDev = ct_cfrule.stdDevSpecified; rule.StdDev = ct_cfrule.stdDev; break; case ST_CfType.containsText: case ST_CfType.notContainsText: case ST_CfType.beginsWith: case ST_CfType.endsWith: case ST_CfType.cellIs: rule.Text = ct_cfrule.text; rule.Operator = (CFOperator)ct_cfrule.@operator; break; } if (ct_cfrule.dxfIdSpecified) rule.Style = GetDxfStyle(ct_cfrule.dxfId); return rule; }
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 }; }
private CFRule GetConditionalFormattingRule(CT_CfRule ct_cfrule) { CFRule rule = new CFRule((CFType)ct_cfrule.type, ct_cfrule.priority); if (ct_cfrule.formula != null) { string for1 = null, for2 = null, for3 = null; if (ct_cfrule.formula.Length > 0) { for1 = ct_cfrule.formula[0]; } if (ct_cfrule.formula.Length > 1) { for2 = ct_cfrule.formula[1]; } if (ct_cfrule.formula.Length > 2) { for3 = ct_cfrule.formula[2]; } rule.Formula1 = for1; rule.Formula2 = for2; rule.Formula3 = for3; } switch (ct_cfrule.type) { case ST_CfType.iconSet: rule.IconSet = new IconSet { IconSetType = (IconSetType)ct_cfrule.iconSet.iconSet, ShowValue = ct_cfrule.iconSet.showValue, CFVOList = ConvertCFVOList(ct_cfrule.iconSet.cfvo) }; break; case ST_CfType.dataBar: rule.DataBar = new DataBar { CFVOList = ConvertCFVOList(ct_cfrule.dataBar.cfvo), Color = ConvertColor(ct_cfrule.dataBar.color) }; break; case ST_CfType.colorScale: rule.ColorScale = new ColorScale { CFVOList = ConvertCFVOList(ct_cfrule.colorScale.cfvo), Colors = ConvertColorList(ct_cfrule.colorScale.color) }; break; case ST_CfType.timePeriod: rule.TimePeriod = (TimePeriod)ct_cfrule.timePeriod; break; case ST_CfType.top10: rule.IsPercent = ct_cfrule.percent; rule.IsBottom = ct_cfrule.bottom; rule.Rank = (int)ct_cfrule.rank; break; case ST_CfType.aboveAverage: rule.IsAboveAverage = ct_cfrule.aboveAverage; rule.IsEqualAverage = ct_cfrule.equalAverage; rule.IsStdDev = ct_cfrule.stdDevSpecified; rule.StdDev = ct_cfrule.stdDev; break; case ST_CfType.containsText: case ST_CfType.notContainsText: case ST_CfType.beginsWith: case ST_CfType.endsWith: case ST_CfType.cellIs: rule.Text = ct_cfrule.text; rule.Operator = (CFOperator)ct_cfrule.@operator; break; } if (ct_cfrule.dxfIdSpecified) { rule.Style = GetDxfStyle(ct_cfrule.dxfId); } return(rule); }