public XSSFColor GetThemeColor(int idx) { CT_ColorScheme clrScheme = this.theme.GetTheme().themeElements.clrScheme; int num = 0; foreach (NPOI.OpenXmlFormats.Dml.CT_Color ctColor1 in new List <NPOI.OpenXmlFormats.Dml.CT_Color>() { clrScheme.dk1, clrScheme.lt1, clrScheme.dk2, clrScheme.lt2, clrScheme.accent1, clrScheme.accent2, clrScheme.accent3, clrScheme.accent4, clrScheme.accent5, clrScheme.accent6, clrScheme.hlink, clrScheme.folHlink }) { if (num == idx) { NPOI.OpenXmlFormats.Dml.CT_Color ctColor2 = ctColor1; byte[] rgb = (byte[])null; if (ctColor2.srgbClr != null) { rgb = ctColor2.srgbClr.val; } else if (ctColor2.sysClr != null) { rgb = ctColor2.sysClr.lastClr; } return(new XSSFColor(rgb)); } ++num; } return((XSSFColor)null); }
/** * Convert a theme "index" into a color. * @param idx A theme "index" * @return The mapped XSSFColor, or null if not mapped. */ public XSSFColor GetThemeColor(int idx) { // Theme color references are NOT positional indices into the color scheme, // i.e. these keys are NOT the same as the order in which theme colors appear // in theme1.xml. They are keys to a mapped color. CT_ColorScheme colorScheme = theme.GetTheme().themeElements.clrScheme; NPOI.OpenXmlFormats.Dml.CT_Color ctColor = null; switch (idx) { case THEME_LT1: ctColor = colorScheme.lt1; break; case THEME_DK1: ctColor = colorScheme.dk1; break; case THEME_LT2: ctColor = colorScheme.lt2; break; case THEME_DK2: ctColor = colorScheme.dk2; break; case THEME_ACCENT1: ctColor = colorScheme.accent1; break; case THEME_ACCENT2: ctColor = colorScheme.accent2; break; case THEME_ACCENT3: ctColor = colorScheme.accent3; break; case THEME_ACCENT4: ctColor = colorScheme.accent4; break; case THEME_ACCENT5: ctColor = colorScheme.accent5; break; case THEME_ACCENT6: ctColor = colorScheme.accent6; break; case THEME_HLINK: ctColor = colorScheme.hlink; break; case THEME_FOLHLINK: ctColor = colorScheme.folHlink; break; default: return(null); } byte[] rgb = null; if (ctColor.IsSetSrgbClr()) { // Color is a regular one rgb = ctColor.srgbClr.val; } else if (ctColor.IsSetSysClr()) { // Color is a tint of white or black rgb = ctColor.sysClr.lastClr; } else { return(null); } return(new XSSFColor(rgb)); }
public XSSFColor GetThemeColor(int idx) { CT_ColorScheme colorScheme = theme.GetTheme().themeElements.clrScheme; NPOI.OpenXmlFormats.Dml.CT_Color ctColor = null; int cnt = 0; List <NPOI.OpenXmlFormats.Dml.CT_Color> colors = new List <NPOI.OpenXmlFormats.Dml.CT_Color>(); colors.Add(colorScheme.dk1); colors.Add(colorScheme.lt1); colors.Add(colorScheme.dk2); colors.Add(colorScheme.lt2); colors.Add(colorScheme.accent1); colors.Add(colorScheme.accent2); colors.Add(colorScheme.accent3); colors.Add(colorScheme.accent4); colors.Add(colorScheme.accent5); colors.Add(colorScheme.accent6); colors.Add(colorScheme.hlink); colors.Add(colorScheme.folHlink); //iterate ctcolors in colorschema foreach (NPOI.OpenXmlFormats.Dml.CT_Color color in colors) { if (cnt == idx) { ctColor = color; byte[] rgb = null; if (ctColor.srgbClr != null) { // Colour is a regular one rgb = ctColor.srgbClr.val; } else if (ctColor.sysClr != null) { // Colour is a tint of white or black rgb = ctColor.sysClr.lastClr; } return(new XSSFColor(rgb)); } cnt++; } return(null); }
public static CT_ColorSchemeAndMapping Parse(XElement node, XmlNamespaceManager namespaceManager) { if (node == null) { return(null); } CT_ColorSchemeAndMapping ctObj = new CT_ColorSchemeAndMapping(); foreach (XElement childNode in node.ChildElements()) { if (childNode.Name.LocalName == "clrScheme") { ctObj.clrScheme = CT_ColorScheme.Parse(childNode, namespaceManager); } else if (childNode.Name.LocalName == "clrMap") { ctObj.clrMap = CT_ColorMapping.Parse(childNode, namespaceManager); } } return(ctObj); }
public CT_BaseStylesOverride() { this.fmtSchemeField = new CT_StyleMatrix(); this.fontSchemeField = new CT_FontScheme(); this.clrSchemeField = new CT_ColorScheme(); }