internal ExcelNumberFormat(ExcelStyles styles, OfficeOpenXml.XmlHelper.ChangedEventHandler ChangedEvent, int PositionID, string Address, int index) : base(styles, ChangedEvent, PositionID, Address) { Index = index; }
internal ExcelGradientFill(ExcelStyles styles, OfficeOpenXml.XmlHelper.ChangedEventHandler ChangedEvent, int PositionID, string address, int index) : base(styles, ChangedEvent, PositionID, address) { Index = index; }
internal ExcelNamedStyleCollection(ExcelStyleCollection <ExcelNamedStyleXml> list, ExcelStyles styles) { _styles = styles; _list = list.Select(x => new ExcelNamedStyle(x)).ToList(); }
internal ExcelColor(ExcelStyles styles, OfficeOpenXml.XmlHelper.ChangedEventHandler ChangedEvent, int worksheetID, string address, eStyleClass cls, StyleBase parent) : base(styles, ChangedEvent, worksheetID, address) { _parent = parent; _cls = cls; }
internal int CloneStyle(ExcelStyles style, int styleId, bool isNamedStyle, bool alwaysAddCellXfs) { ExcelXfs xfs; lock (style) { if (isNamedStyle) { xfs = style.CellStyleXfs[styleId]; } else { xfs = style.CellXfs[styleId]; } ExcelXfs newXfs = xfs.Copy(this); //Number format if (xfs.NumberFormatId > 0) { //rake36: Two problems here... //rake36: 1. the first time through when format stays equal to String.Empty, it adds a string.empty to the list of Number Formats //rake36: 2. when adding a second sheet, if the numberformatid == 164, it finds the 164 added by previous sheets but was using the array index //rake36: for the numberformatid var format = string.Empty; foreach (ExcelNumberFormatXml fmt in style.NumberFormats) { if (fmt.NumFmtId == xfs.NumberFormatId) { format = fmt.Format; break; } } //rake36: Don't add another format if it's blank if (!string.IsNullOrEmpty(format)) { var ix = NumberFormats.FindIndexById(format); if (ix < 0) { var item = new ExcelNumberFormatXml(NameSpaceManager) { Format = format, NumFmtId = NumberFormats.NextId++ }; NumberFormats.Add(format, item); //rake36: Use the just added format id newXfs.NumberFormatId = item.NumFmtId; } else { //rake36: Use the format id defined by the index... not the index itself newXfs.NumberFormatId = NumberFormats[ix].NumFmtId; } } } //Font if (xfs.FontId > -1) { var ix = Fonts.FindIndexById(xfs.Font.Id); if (ix < 0) { ExcelFontXml item = style.Fonts[xfs.FontId].Copy(); ix = Fonts.Add(xfs.Font.Id, item); } newXfs.FontId = ix; } //Border if (xfs.BorderId > -1) { var ix = Borders.FindIndexById(xfs.Border.Id); if (ix < 0) { ExcelBorderXml item = style.Borders[xfs.BorderId].Copy(); ix = Borders.Add(xfs.Border.Id, item); } newXfs.BorderId = ix; } //Fill if (xfs.FillId > -1) { var ix = Fills.FindIndexById(xfs.Fill.Id); if (ix < 0) { ExcelFillXml item = style.Fills[xfs.FillId].Copy(); ix = Fills.Add(xfs.Fill.Id, item); } newXfs.FillId = ix; } //Named style reference if (xfs.XfId > 0) { var id = style.CellStyleXfs[xfs.XfId].Id; var newId = CellStyleXfs.FindIndexById(id); if (newId >= 0) { newXfs.XfId = newId; } else if (style._wb != _wb && alwaysAddCellXfs == false) //Not the same workbook, copy the namedstyle to the workbook or match the id { var nsFind = style.NamedStyles.ToDictionary(d => d.StyleXfId); if (nsFind.ContainsKey(xfs.XfId)) { ExcelNamedStyleXml st = nsFind[xfs.XfId]; if (NamedStyles.ExistsKey(st.Name)) { newXfs.XfId = NamedStyles.FindIndexById(st.Name); } else { ExcelNamedStyle ns = CreateNamedStyle(st.Name, st.Style); newXfs.XfId = NamedStyles.Count - 1; } } } } int index; if (isNamedStyle && alwaysAddCellXfs == false) { index = CellStyleXfs.Add(newXfs.Id, newXfs); } else { if (alwaysAddCellXfs) { index = CellXfs.Add(newXfs.Id, newXfs); } else { index = CellXfs.FindIndexById(newXfs.Id); if (index < 0) { index = CellXfs.Add(newXfs.Id, newXfs); } } } return(index); } }
internal int CloneStyle(ExcelStyles style, int styleId, bool isNamedStyle) { return(CloneStyle(style, styleId, isNamedStyle, false)); }
internal int CloneStyle(ExcelStyles style, int styleId) { return(CloneStyle(style, styleId, false, false)); }