public static string Name(this BuiltInStyleIndex builtInStyle) { switch (builtInStyle) { case BuiltInStyleIndex.Normal: return("Normal"); case BuiltInStyleIndex.RowLevel: return("RowLevel"); case BuiltInStyleIndex.ColumnLevel: return("ColLevel"); case BuiltInStyleIndex.Comma: return("Comma"); case BuiltInStyleIndex.Currency: return("Currency"); case BuiltInStyleIndex.Percent: return("Percent"); case BuiltInStyleIndex.Comma0: return("Comma [0]"); case BuiltInStyleIndex.Currency0: return("Currency [0]"); case BuiltInStyleIndex.HyperLink: return("Hyperlink"); case BuiltInStyleIndex.FollowedHyperLink: return("Followed Hyperlink"); case BuiltInStyleIndex.Note: return("Note"); case BuiltInStyleIndex.WarningText: return("Warning Text"); case BuiltInStyleIndex.Title: return("Title"); case BuiltInStyleIndex.Heading1: return("Heading 1"); case BuiltInStyleIndex.Heading2: return("Heading 2"); case BuiltInStyleIndex.Heading3: return("Heading 3"); case BuiltInStyleIndex.Heading4: return("Heading 4"); case BuiltInStyleIndex.Input: return("Input"); case BuiltInStyleIndex.Output: return("Output"); case BuiltInStyleIndex.Calculation: return("Calculation"); case BuiltInStyleIndex.CheckCell: return("Check Cell"); case BuiltInStyleIndex.LinkedCell: return("Linked Cell"); case BuiltInStyleIndex.Total: return("Total"); case BuiltInStyleIndex.Good: return("Good"); case BuiltInStyleIndex.Bad: return("Bad"); case BuiltInStyleIndex.Neutral: return("Neutral"); case BuiltInStyleIndex.Accent1: return("Accent1"); case BuiltInStyleIndex.Accent1_20: return("20% - Accent1"); case BuiltInStyleIndex.Accent1_40: return("40% - Accent1"); case BuiltInStyleIndex.Accent1_60: return("60% - Accent1"); case BuiltInStyleIndex.Accent2: return("Accent2"); case BuiltInStyleIndex.Accent2_20: return("20% - Accent2"); case BuiltInStyleIndex.Accent2_40: return("40% - Accent2"); case BuiltInStyleIndex.Accent2_60: return("60% - Accent2"); case BuiltInStyleIndex.Accent3: return("Accent3"); case BuiltInStyleIndex.Accent3_20: return("20% - Accent3"); case BuiltInStyleIndex.Accent3_40: return("40% - Accent3"); case BuiltInStyleIndex.Accent3_60: return("60% - Accent3"); case BuiltInStyleIndex.Accent4: return("Accent4"); case BuiltInStyleIndex.Accent4_20: return("20% - Accent4"); case BuiltInStyleIndex.Accent4_40: return("40% - Accent4"); case BuiltInStyleIndex.Accent4_60: return("60% - Accent4"); case BuiltInStyleIndex.Accent5: return("Accent5"); case BuiltInStyleIndex.Accent5_20: return("20% - Accent5"); case BuiltInStyleIndex.Accent5_40: return("40% - Accent5"); case BuiltInStyleIndex.Accent5_60: return("60% - Accent5"); case BuiltInStyleIndex.Accent6: return("Accent6"); case BuiltInStyleIndex.Accent6_20: return("20% - Accent6"); case BuiltInStyleIndex.Accent6_40: return("40% - Accent6"); case BuiltInStyleIndex.Accent6_60: return("60% - Accent6"); case BuiltInStyleIndex.ExplanatoryText: return("Explanatory Text"); } return(string.Empty); }
private Task InitBuiltInExcelStyleCollections() { _builtInStyls.Clear(); return(Task.Run(() => { // hdt,内容转为嵌入资源 using (Stream s = typeof(BuiltInExcelStyles).Assembly.GetManifestResourceStream("Dt.Xls.BuiltInStyles.xml")) { s.Seek(0L, (SeekOrigin)SeekOrigin.Begin); XDocument document = XDocument.Load(s); List <ExcelFont> fonts = new List <ExcelFont>(); List <Tuple <FillPatternType, ExcelColor, ExcelColor> > fills = new List <Tuple <FillPatternType, ExcelColor, ExcelColor> >(); List <ExcelBorder> borders = new List <ExcelBorder>(); List <ExtendedFormat> list4 = new List <ExtendedFormat>(); Dictionary <int, ExcelNumberFormat> dictionary = new Dictionary <int, ExcelNumberFormat>(); using (IEnumerator <XElement> enumerator = document.Elements().GetEnumerator()) { while (enumerator.MoveNext()) { XElement element = enumerator.Current; if (element.Name.LocalName == "styleSheet") { using (IEnumerator <XElement> enumerator2 = element.Elements().GetEnumerator()) { while (enumerator2.MoveNext()) { XElement element2 = enumerator2.Current; if (element2.Name.LocalName == "numFmts") { using (IEnumerator <XElement> enumerator3 = element2.Elements().GetEnumerator()) { while (enumerator3.MoveNext()) { XElement element3 = enumerator3.Current; int id = element3.GetAttributeValueOrDefaultOfInt32Type("numFmtId", -2147483648); if (id >= 0) { string code = element3.GetAttributeValueOrDefaultOfStringType("formatCode", null); dictionary.Add(id, new ExcelNumberFormat(id, code)); } } continue; } } if (element2.Name.LocalName == "fonts") { using (IEnumerator <XElement> enumerator4 = element2.Elements().GetEnumerator()) { while (enumerator4.MoveNext()) { XElement child = enumerator4.Current; if (child.Name.LocalName == "font") { fonts.Add(XlsxReader.ReadFont(child)); } } continue; } } if (element2.Name.LocalName == "fills") { using (IEnumerator <XElement> enumerator5 = element2.Elements().GetEnumerator()) { while (enumerator5.MoveNext()) { XElement element5 = enumerator5.Current; if (element5.Name.LocalName == "fill") { fills.Add(XlsxReader.ReadFillPattern(element5.Element(XlsxReader.XNames.patternFill))); } } continue; } } if (element2.Name.LocalName == "borders") { using (IEnumerator <XElement> enumerator6 = element2.Elements().GetEnumerator()) { while (enumerator6.MoveNext()) { XElement element6 = enumerator6.Current; if (element6.HasElements) { ExcelBorder border = new ExcelBorder { Left = XlsxReader.GetBorder(element6, "left"), Right = XlsxReader.GetBorder(element6, "right"), Top = XlsxReader.GetBorder(element6, "top"), Bottom = XlsxReader.GetBorder(element6, "bottom") }; borders.Add(border); } } continue; } } if (element2.Name.LocalName == "cellStyleXfs") { using (IEnumerator <XElement> enumerator7 = element2.Elements().GetEnumerator()) { while (enumerator7.MoveNext()) { XElement node = enumerator7.Current; if (node.Name.LocalName == "xf") { list4.Add(XlsxReader.ReadXF(node, fonts, fills, borders, true)); } } continue; } } if (element2.Name.LocalName == "cellStyles") { using (IEnumerator <XElement> enumerator8 = element2.Elements().GetEnumerator()) { while (enumerator8.MoveNext()) { XElement element8 = enumerator8.Current; string str2 = element8.GetAttributeValueOrDefaultOfStringType("name", null); int num2 = element8.GetAttributeValueOrDefaultOfInt32Type("xfId", 0); ExtendedFormat format = list4[num2]; format.IsStyleFormat = true; BuiltInStyleIndex index = (BuiltInStyleIndex)element8.GetAttributeValueOrDefaultOfInt32Type("builtinId", 0); ExcelStyle style = new ExcelStyle { Name = str2, Format = format.Clone() }; if ((style.Format.NumberFormat == null) && dictionary.ContainsKey(style.Format.NumberFormatIndex)) { style.Format.NumberFormat = dictionary[style.Format.NumberFormatIndex]; style.Format.NumberFormatIndex = 0; } style.IsCustomBuiltIn = false; style.BuiltInStyle = index; style.Category = style.GetBuiltInStyleCategory(); _builtInStyls.Add(style); } continue; } } } continue; } } } } } })); }