public Cell GetCell(ExcelAddress.Cell address) { Dictionary <uint, Cell> rows; if (this.cells.TryGetValue(address.ColumnIndex, out rows)) { Cell cell; if (rows.TryGetValue(address.RowIndex, out cell)) { return(cell); } } throw new KeyNotFoundException(String.Format("No cell exists at {0}", address.CellReferenceString)); }
public void WriteValue(ExcelAddress.Cell address, object value) { var cell = this.GetCell(address); if (value == null) { cell.CellValue = new CellValue(null); return; } var typ = value.GetType(); if (typ == typeof(string)) { var v = (string)value; var index = this.Workbook.InsertSharedStringItem(v); cell.CellValue = new CellValue(index.ToString(CultureInfo.InvariantCulture)); cell.DataType = new EnumValue <CellValues>(CellValues.SharedString); return; } if (typ == typeof(DateTime)) { var dt = (DateTime)value; string dtValue = dt.ToOADate().ToString(CultureInfo.InvariantCulture); cell.CellValue = new CellValue(dtValue); cell.DataType = new EnumValue <CellValues>(CellValues.Number); return; } if (ExcelWorkbook.NumericTypes.Contains(typ)) { cell.CellValue = new CellValue(value.ToString()); cell.DataType = new EnumValue <CellValues>(CellValues.Number); return; } throw new InvalidOperationException(string.Format("the type {0} is not currently supported if it is an array values should be boxed to type object[][]", typ.FullName)); }