public IRow GetRow(int index) { if (index == 0) { throw new ArgumentException("Row index can't be zero (0)", "index"); } var search = new FakeRow() { Index = index }; int insert = rows.BinarySearch(search, CompareRows); if (insert < 0) { insert = ~insert; XElementData rowData; if (insert == 0) { rowData = data.Add("row"); } else { rowData = ((Row)rows[insert - 1]).Data.AddAfterSelf("row"); } rows.Insert(insert, Row.New(rowData, index, this)); } return(rows[insert]); }
public double GetYPosition(int index) { var search = new FakeRow() { Index = index }; int insert = rows.BinarySearch(search, CompareRows); if (insert < 0) { insert = ~insert; } return(rows.Take(insert).Sum(r => r.Height) + ((index - insert) * Worksheet.DefaultRowHeight)); }