Exemplo n.º 1
0
 // 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
 }
Exemplo n.º 2
0
 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();
 }
Exemplo n.º 3
0
 // existing cells constructor
 private Cell(XElementData data, Row row, SharedStrings sharedStrings)
 {
     this.row           = row;
     this.Data          = data;
     this.sharedStrings = sharedStrings;
     Name = data["r"];
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 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();
 }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
 // 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);
 }
Exemplo n.º 9
0
        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();
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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
            }
        }
Exemplo n.º 12
0
        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));
            }
        }
Exemplo n.º 13
0
 public static ShapeProperties New(XElementData data, DrawPosition from, DrawPosition to)
 {
     return(new ShapeProperties(data, from, to));
 }
Exemplo n.º 14
0
 private ShapeProperties(XElementData data, DrawPosition from, DrawPosition to)
 {
     this.data = data;
     WriteContents(from, to);
 }
Exemplo n.º 15
0
 public ColumnRange ToRange(XElementData data)
 {
     return(new ColumnRange(data, Index + 1, Index + 1, Width, Style));
 }
Exemplo n.º 16
0
 public ContentTypes(XElementData data)
 {
     this.data = data;
     ReadContents();
 }
Exemplo n.º 17
0
 public ColumnRange(XElementData data)
 {
     this.data = data;
 }
Exemplo n.º 18
0
 public static Cell FromExisting(XElementData data, Row row, SharedStrings sharedStrings)
 {
     return(new Cell(data, row, sharedStrings));
 }
Exemplo n.º 19
0
 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);
 }
Exemplo n.º 20
0
 public static Shape New(XElementData data, int id, DrawPosition from, DrawPosition to, Drawings drawings)
 {
     return(new Shape(data, id, from, to, drawings));
 }
Exemplo n.º 21
0
 private Shape(XElementData data, Drawings drawings)
 {
     this.data       = data;
     this.drawings   = drawings;
     ShapeProperties = null; // shape properties for existing shapes will not be initialized
 }
Exemplo n.º 22
0
 public static Row FromExisting(XElementData data, ISheetData sheetData)
 {
     return(new Row(data, sheetData));
 }
Exemplo n.º 23
0
 public static Shape FromExisting(XElementData data, Drawings drawings)
 {
     return(new Shape(data, drawings));
 }
Exemplo n.º 24
0
 public static Row New(XElementData data, int index, ISheetData sheetData)
 {
     return(new Row(data, index, sheetData));
 }
Exemplo n.º 25
0
 public SheetColumns(XElementData data)
 {
     this.data = data;
     ReadColumns();
 }
Exemplo n.º 26
0
 public static Cell New(XElementData data, Row row, string name, SharedStrings sharedStrings)
 {
     return(new Cell(data, row, name, sharedStrings));
 }
Exemplo n.º 27
0
 public SheetViews(XElementData data)
 {
     this.data = data;
 }