Example #1
0
        public void InsertRows()
        {
            #region radspreadsheet-model-working-with-rows-and-columns-insert-and-remove_0
            Workbook  workbook  = new Workbook();
            Worksheet worksheet = workbook.Worksheets.Add();

            int index     = 2;
            int itemCount = 3;

            if (worksheet.Rows.CanInsert(index, itemCount))
            {
                RowSelection selection = worksheet.Rows[index, index + itemCount];
                selection.Insert();
            }
            #endregion
        }
        private Workbook GenerateWorkBook()
        {
            this.headerRowCount  = this.ShowColumnHeaders ? 1 : 0;
            this.headerRowCount += this.ChildrenOfType <GridViewColumnGroupRow>().Count();
            Workbook workbook = null;

            workbook = this.ExportToWorkbook();

            var              worksheet = workbook.ActiveWorksheet;
            DataTemplate     dt        = this.HierarchyChildTemplate;
            DependencyObject dio       = dt.LoadContent();
            var              childGrid = dio as RadGridView;

            foreach (var subItem in subItemsDictionary)
            {
                var          rowIndex  = subItem.Key;
                RowSelection selection = worksheet.Rows[rowIndex + 1, rowIndex + subItem.Value.Count];
                selection.Insert();
                for (var i = 0; i < subItem.Value.Count; i++)
                {
                    var item = subItem.Value[i];
                    for (var j = 0; j < childGrid.Columns.Count; j++)
                    {
                        var column   = childGrid.Columns[j] as GridViewDataColumn;
                        var cell     = worksheet.Cells[rowIndex + 1 + i, j];
                        var property = item.GetType().GetProperty(column.DataMemberBinding.Path.Path);
                        var value    = property != null?property.GetValue(item).ToString() : string.Empty;

                        cell.SetValueAsText(value);
                        var solidPatternFill = new PatternFill(PatternType.Solid, Color.FromArgb(255, 46, 204, 113), Colors.Transparent);
                        cell.SetFill(solidPatternFill);
                    }
                }
            }

            for (var j = 0; j < childGrid.Columns.Count; j++)
            {
                worksheet.Columns[j].AutoFitWidth();
            }

            return(workbook);
        }
        private Workbook GenerateWorkBook()
        {
            this.headerRowCount  = this.ShowColumnHeaders ? 1 : 0;
            this.headerRowCount += this.ChildrenOfType <GridViewColumnGroupRow>().Count();
            Workbook workbook = null;

            workbook = this.ExportToWorkbook();

            var worksheet = workbook.ActiveWorksheet;

            worksheet.GroupingProperties.SummaryRowIsBelow = false;
            DataTemplate     template = this.HierarchyChildTemplate;
            DependencyObject content  = template.LoadContent();
            var childGrid             = content as RadGridView;
            var parentItemCount       = 0;

            foreach (var parentItem in parentItemsDictionary)
            {
                var rowIndex = parentItem.ExportIndex + headerRowCount + parentItemCount + 1;
                parentItemCount++;
                RowSelection selection = worksheet.Rows[rowIndex, rowIndex + parentItem.SubItems.Count];
                selection.Insert();
                for (var j = 0; j < childGrid.Columns.Count; j++)
                {
                    var column = childGrid.Columns[j] as GridViewDataColumn;
                    var header = column.Header != null?column.Header.ToString() : column.DataMemberBinding.Path.Path;

                    var headerCell = worksheet.Cells[rowIndex, j];
                    headerCell.SetValueAsText(header);
                    var headerCellFill = new PatternFill(PatternType.Solid, Color.FromArgb(255, 150, 150, 150), Colors.Transparent);
                    headerCell.SetFill(headerCellFill);
                    headerCell.SetIsBold(true);

                    for (var i = 0; i < parentItem.SubItems.Count; i++)
                    {
                        var item = parentItem.SubItems[i];

                        var cell     = worksheet.Cells[rowIndex + 1 + i, j];
                        var property = item.GetType().GetProperty(column.DataMemberBinding.Path.Path);
                        var value    = property != null?property.GetValue(item).ToString() : string.Empty;

                        cell.SetValueAsText(value);
                        var subItemCellFill = new PatternFill(PatternType.Solid, Color.FromArgb(255, 46, 204, 113), Colors.Transparent);
                        cell.SetFill(subItemCellFill);
                    }
                }

                selection.Group();
                var originalItem = this.Items[parentItem.OriginalIndex];
                var isExpanded   = (bool)originalItem.GetType().GetProperty("IsExpanded").GetValue(originalItem);
                if (!isExpanded)
                {
                    selection.SetHidden(true);
                }
            }

            for (var j = 0; j < childGrid.Columns.Count; j++)
            {
                worksheet.Columns[j].AutoFitWidth();
            }

            return(workbook);
        }