// existing rows constructor private Row(XElementData data, ISheetData sheetData) { this.Data = data; this.sheetData = sheetData; Index = int.Parse(data["r"], NumberFormatInfo.InvariantInfo); data.RemoveAttribute("spans"); // clear spans attribute, will be recalculated }
public SheetData(XElementData data, IWorksheetData worksheet, SheetColumns sheetColumns) { this.data = data; this.Worksheet = worksheet; this.sheetColumns = sheetColumns; rows = data.Descendants("row").Select(r => ((IRow)Row.FromExisting(r, this))).ToList(); }
// existing cells constructor private Cell(XElementData data, Row row, SharedStrings sharedStrings) { this.row = row; this.Data = data; this.sharedStrings = sharedStrings; Name = data["r"]; }
private Shape(XElementData data, int id, DrawPosition from, DrawPosition to, Drawings drawings) { this.data = data; this.drawings = drawings; SetPositions(from, to); WriteContents(id, from, to); }
public ColumnRange(XElementData data, long min, long max, double width, int?style) { this.data = data; Min = min; Max = max; Width = ((int)(width * 256)) / (double)256; Style = style; }
public SharedStrings(string path) { this.path = path; data = new XElementData(XDocument.Load(path).Root); data.RemoveAttribute("count"); // optional values - will be recalculated data.RemoveAttribute("uniqueCount"); // optional values - will be recalculated ReadContents(); }
public static void SetHexColor(XElementData data, int r, int g, int b) { var colorData = data.Element("a", "srgbClr"); if (colorData == null) { colorData = data.Add("a", "srgbClr"); } colorData.SetAttributeValue("val", string.Format("{0:X2}{1:X2}{2:X2}", r, g, b)); }
// new rows constructor private Row(XElementData data, int index, ISheetData sheetData) { if (index == 0) { throw new ArgumentException("Row index can't be zero (0)", "index"); } this.Data = data; this.sheetData = sheetData; Index = index; data.SetAttributeValue("r", index); }
public static void SetPercentageColor(XElementData data, int r, int g, int b) { var colorData = data.Element("a", "scrgbClr"); if (colorData == null) { colorData = data.Add("a", "scrgbClr"); } colorData["r"] = r.ToString(); colorData["g"] = g.ToString(); colorData["b"] = b.ToString(); }
private void ReadContents(string filePath) { this.filePath = filePath; DecompressFolder = Path.GetTempFileName() + @"_excelutility\"; Directory.CreateDirectory(DecompressFolder); new FastZip().ExtractZip(filePath, DecompressFolder, null); var contentTypesData = new XElementData(XDocument.Load(string.Format("{0}[Content_Types].xml", DecompressFolder)).Root); contentTypes = new ContentTypes(contentTypesData); sharedStrings = new SharedStrings(DecompressFolder + contentTypes.GetSharedStringsPath()); workbook = new Workbook(DecompressFolder, contentTypes, sharedStrings); }
public Worksheet(XElementData data, IWorkbook workbook, string worksheetFolder, string name, int sheetId) { this.data = data; this.Workbook = workbook; this.relationshipsData = new XElementData(XDocument.Load(string.Format("{0}/_rels/sheet{1}.xml.rels", worksheetFolder, sheetId)).Root); this.worksheetFolder = worksheetFolder; this.sheetId = sheetId; Name = name; ReadContents(); var dimension = data.Element("dimension"); if (dimension != null) { dimension.Remove(); // clear dimension attribute - will be recalculated } }
private void ReadContents() { data = new XElementData(XDocument.Load(path).Root); var relationshipsData = new XElementData(XDocument.Load(string.Format("{0}/_rels/workbook.xml.rels", Path.GetDirectoryName(path))).Root); foreach (var worksheetElement in data.Element("sheets").Descendants("sheet")) { var id = worksheetElement.AttributeValue("r", "id"); var name = worksheetElement["name"]; if (!id.StartsWith("rId")) { throw new InvalidDataException(string.Format("Invalid sheet id [{0}]", id)); } int sheetId = int.Parse(id.Substring("rId".Length), NumberFormatInfo.InvariantInfo); var target = relationshipsData.Descendants("Relationship").Single(r => r["Id"] == id)["Target"]; var worksheetPath = string.Format("{0}/{1}", xlFolder, target); var worksheetFolder = Path.GetDirectoryName(worksheetPath); var worksheetData = new XElementData(XDocument.Load(worksheetPath).Root); worksheets.Add(new Worksheet(worksheetData, this, worksheetFolder, name, sheetId)); } }
public static ShapeProperties New(XElementData data, DrawPosition from, DrawPosition to) { return(new ShapeProperties(data, from, to)); }
private ShapeProperties(XElementData data, DrawPosition from, DrawPosition to) { this.data = data; WriteContents(from, to); }
public ColumnRange ToRange(XElementData data) { return(new ColumnRange(data, Index + 1, Index + 1, Width, Style)); }
public ContentTypes(XElementData data) { this.data = data; ReadContents(); }
public ColumnRange(XElementData data) { this.data = data; }
public static Cell FromExisting(XElementData data, Row row, SharedStrings sharedStrings) { return(new Cell(data, row, sharedStrings)); }
public Drawings(string path) { this.path = path; this.data = new XElementData("xdr", XDocument.Load(path).Root); map = data.Descendants("twoCellAnchor").Select(d => Shape.FromExisting(d, this)).ToDictionary(s => s.Id); }
public static Shape New(XElementData data, int id, DrawPosition from, DrawPosition to, Drawings drawings) { return(new Shape(data, id, from, to, drawings)); }
private Shape(XElementData data, Drawings drawings) { this.data = data; this.drawings = drawings; ShapeProperties = null; // shape properties for existing shapes will not be initialized }
public static Row FromExisting(XElementData data, ISheetData sheetData) { return(new Row(data, sheetData)); }
public static Shape FromExisting(XElementData data, Drawings drawings) { return(new Shape(data, drawings)); }
public static Row New(XElementData data, int index, ISheetData sheetData) { return(new Row(data, index, sheetData)); }
public SheetColumns(XElementData data) { this.data = data; ReadColumns(); }
public static Cell New(XElementData data, Row row, string name, SharedStrings sharedStrings) { return(new Cell(data, row, name, sharedStrings)); }
public SheetViews(XElementData data) { this.data = data; }