Пример #1
0
            private Worksheet(string name, X.Worksheet worksheet, X.SharedStringTable sst)
            {
                Name = name;

                Rows = worksheet.Rows
                       .Select(r => rowFactory.Create(r, sst))
                       .ToList();
            }
Пример #2
0
            private Cell(X.Cell cell, X.SharedStringTable sst)
            {
                CellId   = cell.CellId;
                RawValue = cell.Value;

                switch (cell.CellType)
                {
                case X.CellDataType.None:
                    break;

                case X.CellDataType.Bool:
                    BoolValue = Convert.ToBoolean(RawValue);
                    DataType  = CellDataType.Bool;
                    break;

                case X.CellDataType.ISO8601Date:
                    DateTimeValue = DateTime.FromOADate(Convert.ToDouble(RawValue));
                    break;

                case X.CellDataType.Error:
                    ErrorText = RawValue;
                    DataType  = CellDataType.String;
                    break;

                case X.CellDataType.FormulaString:
                    StringValue = RawValue;
                    DataType    = CellDataType.Formula;
                    break;

                case X.CellDataType.InlineString:
                    StringValue = RawValue;
                    DataType    = CellDataType.String;
                    break;

                case X.CellDataType.Number:
                    DataType    = CellDataType.Number;
                    NumberValue = Convert.ToDouble(RawValue);
                    break;

                case X.CellDataType.SharedString:
                    StringValue = sst.Instances[int.Parse(RawValue)].Value;
                    DataType    = CellDataType.String;
                    break;

                default:
                    throw new Exception("Invalid value for c.@t (how did this happen?)");
                }

                var idParts = ParseCellId(CellId);

                Column = idParts.Item1;
                Row    = idParts.Item2;
            }
Пример #3
0
            private Row(X.Row row, X.SharedStringTable sst)
            {
                cellList = row.Cells
                           .Where(c => c.CellType != X.CellDataType.None)
                           .Select(c => cellFactory.Create(c, sst))
                           .ToList();

                if (cellList.Count > 0)
                {
                    Columns = row.Cells.Length;
                }

                cellColumnLookup = cellList
                                   .ToDictionary(c => ColumnToIndex(c.Column));

                cellLookup = cellList
                             .ToDictionary(c => c.Column);
            }
Пример #4
0
 public Cell Create(X.Cell cell, X.SharedStringTable sst) => new Cell(cell, sst);
Пример #5
0
 public Row Create(X.Row row, X.SharedStringTable sst) => new Row(row, sst);
Пример #6
0
 public Worksheet Create(string name, X.Worksheet worksheet, X.SharedStringTable sst)
 => new Worksheet(name, worksheet, sst);