diff --git a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs index 64a5c03..4224f8a 100644 --- a/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs +++ b/ClosedXML/ClosedXML/ClosedXML/Excel/XLWorkbook_Load.cs @@ -186,7 +186,7 @@ } else if (reader.ElementType == typeof(Columns)) LoadColumns(s, numberingFormats, fills, borders, fonts, ws, - (Columns)reader.LoadCurrentElement()); + (Columns)reader.LoadCurrentElement(), styleList); else if (reader.ElementType == typeof(Row)) { lastRow = 0; @@ -738,7 +738,9 @@ var xlCell = ws.CellFast(cellReference); if (styleList.ContainsKey(styleIndex)) + { xlCell.Style = styleList[styleIndex]; + } else { ApplyStyle(xlCell, styleIndex, s, fills, borders, fonts, numberingFormats); @@ -1039,7 +1041,17 @@ { Int32 styleIndex = row.StyleIndex != null ? Int32.Parse(row.StyleIndex.InnerText) : -1; if (styleIndex > 0) - ApplyStyle(xlRow, styleIndex, s, fills, borders, fonts, numberingFormats); + { + if (styleList.ContainsKey(styleIndex)) + { + xlRow.Style = styleList[styleIndex]; + } + else + { + ApplyStyle(xlRow, styleIndex, s, fills, borders, fonts, numberingFormats); + styleList.Add(styleIndex, xlRow.Style); + } + } else { xlRow.Style = DefaultStyle; @@ -1053,7 +1065,7 @@ } private void LoadColumns(Stylesheet s, NumberingFormats numberingFormats, Fills fills, Borders borders, - Fonts fonts, XLWorksheet ws, Columns columns) + Fonts fonts, XLWorksheet ws, Columns columns, Dictionary styleList) { if (columns == null) return; @@ -1098,9 +1110,21 @@ Int32 styleIndex = col.Style != null ? Int32.Parse(col.Style.InnerText) : -1; if (styleIndex > 0) - ApplyStyle(xlColumns, styleIndex, s, fills, borders, fonts, numberingFormats); + { + if (styleList.ContainsKey(styleIndex)) + { + xlColumns.Style = styleList[styleIndex]; + } + else + { + ApplyStyle(xlColumns, styleIndex, s, fills, borders, fonts, numberingFormats); + styleList.Add(styleIndex, xlColumns.Style); + } + } else + { xlColumns.Style = DefaultStyle; + } } } diff --git a/ClosedXML/ClosedXML/ClosedXML_Sandbox/Program.cs b/ClosedXML/ClosedXML/ClosedXML_Sandbox/Program.cs index dbd8023..6cc170c 100644 --- a/ClosedXML/ClosedXML/ClosedXML_Sandbox/Program.cs +++ b/ClosedXML/ClosedXML/ClosedXML_Sandbox/Program.cs @@ -15,13 +15,14 @@ { private static void Main(string[] args) { - - var wbTarget = new XLWorkbook(); - var ws = wbTarget.AddWorksheet("Sheet1"); - ws.FirstCell().Style.Fill.BackgroundColor = XLColor.FromTheme(XLThemeColor.Accent1); - wbTarget.SaveAs(@"c:\temp\saved.xlsx"); + + var wb = new XLWorkbook(@"c:\temp\ColorBook.xlsx"); + var ws = wb.Worksheet("Sheet1"); + var fontColor = ws.Cell("C9").Style.Font.FontColor; + Console.WriteLine("The result for cell is " + fontColor.Color.ToString()); + wb.SaveAs(@"c:\temp\saved.xlsx"); Console.WriteLine("Done"); - //Console.ReadLine(); + Console.ReadLine(); } } }