コード例 #1
0
        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]);
        }
コード例 #2
0
        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));
        }