public DataTable Create(DataTable.IFieldTypeConverter ftc) { var rows = new List <DataTable.Row>(_rows.Count); var startRef = _schema.rangeStartRef; var rowOffset = (_schema.isRotated) ? 0 : _schema.nextBlockOffset; var colOffset = (!_schema.isRotated) ? 0 : _schema.nextBlockOffset; var count = System.Math.Min(_rows.Count, _rowCountLimit); var isEmptyRow = System.Array.TrueForAll( _rows[count - 1], x => x == null ); if (isEmptyRow) { --count; } for (var n = 0; n < count; ++n) { var cr = new CellRef( startRef.row + (n * rowOffset), startRef.col + (n * colOffset) ); rows.Add(new DataTable.Row(cr, _rows[n])); } return(new DataTable(_schema, rows, ftc)); }
public static XlsxRequest[] SetDefaultFieldTypeConverter( this XlsxRequest[] src, DataTable.IFieldTypeConverter ftc) { if (src == null) { throw new System.ArgumentNullException("src"); } var dst = new XlsxRequest[src.Length]; for (var n = 0; n < dst.Length; ++n) { dst[n] = src[n]; if (dst[n].fieldTypeConverter == null) { dst[n] = dst[n].SetFieldTypeConverter(ftc); } } return(dst); }
public static XlsxRequest SetFieldTypeConverter( this string uri, DataTable.IFieldTypeConverter ftc) { return(new XlsxRequest(uri).SetFieldTypeConverter(ftc)); }