private IWorksheet[] GetSheetList(UnZipper unzip, List <string> fileNames) { var sharedStrings = GetSharedStrings(unzip, fileNames); List <XLSXSheet> result = new List <XLSXSheet>(); if (fileNames.Contains(XLSXCommon.Workbook)) { var workbook = unzip.GetXLSXPart(XLSXCommon.Workbook); foreach (var item in workbook.Descendants(XLSXCommon.ExcelNamespace + XLSXCommon.XML_Sheet)) { result.Add(new XLSXSheet(item.Attribute(XLSXCommon.XML_Name).Value, item.Attribute(XLSXCommon.XML_SheetId).Value, unzip, sharedStrings, fileNames)); } } return(result.ToArray()); }
private static Dictionary <string, string> GetSharedStrings(UnZipper unzip, List <string> fileNames) { Dictionary <string, string> dic = new Dictionary <string, string>(); if (fileNames.Contains(XLSXCommon.SharedStrings)) { var sharedStrings = unzip.GetXLSXPart(XLSXCommon.SharedStrings); int count = 0; var si = XLSXCommon.ExcelNamespace + XLSXCommon.XML_SI; var t = XLSXCommon.ExcelNamespace + XLSXCommon.XML_T; foreach (var items in sharedStrings.Descendants(si) .Select(i => i.Descendants(t)) .Where(i => !i.IsEmpty())) { dic.Add(count.ToString(), string.Join("", items.Select(i => i.Value))); count++; } } return(dic); }
public XLSXSheet(string name, string id, UnZipper unzip, Dictionary <string, string> sharedStrings, List <string> fileNames) { Name = name; Rows = new Dictionary <uint, IRow>(); var xml_sheetFileName = string.Format(XLSXCommon.Sheet, id); if (!fileNames.Any(i => i.EqualsIgnoreCase(xml_sheetFileName))) { return; } { var element = unzip.GetXLSXPart(xml_sheetFileName); foreach (var row in element.Descendants(XLSXCommon.ExcelNamespace + XLSXCommon.XML_Row)) { var indexStr = row.Attribute(XLSXCommon.XML_R); var index = int.Parse(indexStr.Value) - 1; Rows.Add((uint)index, new XLSXRow(row, sharedStrings)); } FillMergeCells(GetMergeCells(element)); } }