protected virtual void CreateCell( PropertyGridSpreadExportCell cell, int currentRowIndex, int currentColumnIndex) { this.spreadExportRenderer.CreateCellSelection(currentRowIndex, currentColumnIndex, currentRowIndex, currentColumnIndex + cell.ColSpan - 1); this.spreadExportRenderer.MergeCellSelection(); PropertyGridSpreadExportContentCell exportContentCell = cell as PropertyGridSpreadExportContentCell; if (exportContentCell != null) { bool flag = false; if (!string.IsNullOrEmpty(exportContentCell.FormatString)) { this.spreadExportRenderer.SetCellSelectionFormat(exportContentCell.FormatString); flag = true; } if (exportContentCell.Value != null) { DataType dataType = new DataTypeConvertor().ConvertToDataType(exportContentCell.Value); switch (dataType) { case DataType.String: case DataType.Other: if (!flag) { this.spreadExportRenderer.SetCellSelectionFormat("@"); } this.spreadExportRenderer.SetCellSelectionValue(exportContentCell.Text); break; default: this.spreadExportRenderer.SetCellSelectionValue(dataType, exportContentCell.Value); break; } } else if (!string.IsNullOrEmpty(exportContentCell.Text)) { if (!flag) { this.spreadExportRenderer.SetCellSelectionFormat("@"); } this.spreadExportRenderer.SetCellSelectionValue(exportContentCell.Text); } object cellSelectionValue = this.spreadExportRenderer.GetCellSelectionValue(); if (cellSelectionValue is DateTime && !this.CheckDateTimeValue((DateTime)cellSelectionValue)) { throw new FormatException("The DateTime value is not supported in Excel!"); } } if (!this.ExportVisualSettings && this.CellFormatting == null) { return; } if (cell.Font == null) { cell.Font = Control.DefaultFont; } this.spreadExportRenderer.CreateCellStyleInfo(cell.BackColor, cell.ForeColor, cell.Font.FontFamily, (double)cell.Font.Size, cell.Font.Bold, cell.Font.Italic, cell.Font.Underline, cell.TextAlignment, cell.TextWrap, cell.BorderBoxStyle, cell.BorderColor, cell.BorderTopColor, cell.BorderBottomColor, cell.BorderRightColor, cell.BorderLeftColor); }
private PropertyGridSpreadExportRow CreateExportRow( PropertyGridItemBase item, int itemLevel, int currentRowIndex, ref bool skipHiddenChildItems, ref int collapsedParentLevel, ref bool exportChildItemsHidden) { PropertyGridSpreadExportRow gridSpreadExportRow = new PropertyGridSpreadExportRow(); if (!item.Expanded && this.CollapsedItemOption == HiddenOption.DoNotExport) { skipHiddenChildItems = true; collapsedParentLevel = itemLevel; } if (exportChildItemsHidden && collapsedParentLevel >= itemLevel) { exportChildItemsHidden = false; } if (item is PropertyGridItem) { PropertyGridItem propertyGridItem = item as PropertyGridItem; PropertyGridItemElement propertyGridItemElement = (PropertyGridItemElement)null; if (this.ExportVisualSettings) { propertyGridItemElement = this.elementProvider.GetElement((PropertyGridItemBase)propertyGridItem, (object)null) as PropertyGridItemElement; this.propertyGrid.PropertyGridElement.PropertyTableElement.ViewElement.Children.Add((RadElement)propertyGridItemElement); propertyGridItemElement.Attach((PropertyGridItemBase)propertyGridItem, (object)null); } for (int index = 0; index < itemLevel; ++index) { PropertyGridSpreadExportIndentCell exportIndentCell = new PropertyGridSpreadExportIndentCell(); exportIndentCell.Size = new Size(this.ItemIndent, exportChildItemsHidden ? 0 : -1); if (this.ExportVisualSettings) { if (index == 0 && this.isGridGrouped) { if (itemLevel > 1) { this.GetStylesFromVisualCell((PropertyGridSpreadExportCell)exportIndentCell, (LightVisualElement)propertyGridItemElement.HeaderElement); } else { this.GetStylesFromVisualCell((PropertyGridSpreadExportCell)exportIndentCell, (LightVisualElement)propertyGridItemElement.ExpanderElement); } } else { this.GetStylesFromVisualCell((PropertyGridSpreadExportCell)exportIndentCell, (LightVisualElement)propertyGridItemElement.IndentElement); } this.GetBordersFromVisualCell((PropertyGridSpreadExportCell)exportIndentCell, (LightVisualElement)propertyGridItemElement); } this.OnCellFormatting(new PropertyGridSpreadExportCellFormattingEventArgs((PropertyGridSpreadExportCell)exportIndentCell, (PropertyGridItemBase)propertyGridItem, currentRowIndex)); gridSpreadExportRow.Cells.Add((PropertyGridSpreadExportCell)exportIndentCell); } PropertyGridSpreadExportContentCell exportContentCell1 = new PropertyGridSpreadExportContentCell(); exportContentCell1.Text = propertyGridItem.Label; exportContentCell1.ColSpan += this.depthOfTree - propertyGridItem.Level; exportContentCell1.Size = new Size(this.textCellWidth - itemLevel * this.ItemIndent, exportChildItemsHidden ? 0 : -1); gridSpreadExportRow.Cells.Add((PropertyGridSpreadExportCell)exportContentCell1); if (this.ExportVisualSettings) { this.GetStylesFromVisualCell((PropertyGridSpreadExportCell)exportContentCell1, (LightVisualElement)propertyGridItemElement.TextElement); this.GetBordersFromVisualCell((PropertyGridSpreadExportCell)exportContentCell1, (LightVisualElement)propertyGridItemElement); } this.OnCellFormatting(new PropertyGridSpreadExportCellFormattingEventArgs((PropertyGridSpreadExportCell)exportContentCell1, (PropertyGridItemBase)propertyGridItem, currentRowIndex)); PropertyGridSpreadExportContentCell exportContentCell2 = new PropertyGridSpreadExportContentCell(); exportContentCell2.Value = propertyGridItem.Value; exportContentCell2.Text = propertyGridItem.FormattedValue; exportContentCell2.Size = new Size(this.valueCellWidth, exportChildItemsHidden ? 0 : -1); if (this.ExportVisualSettings) { this.GetStylesFromVisualCell((PropertyGridSpreadExportCell)exportContentCell2, (LightVisualElement)propertyGridItemElement.ValueElement); this.GetBordersFromVisualCell((PropertyGridSpreadExportCell)exportContentCell2, (LightVisualElement)propertyGridItemElement); } this.OnCellFormatting(new PropertyGridSpreadExportCellFormattingEventArgs((PropertyGridSpreadExportCell)exportContentCell2, (PropertyGridItemBase)propertyGridItem, currentRowIndex)); gridSpreadExportRow.Cells.Add((PropertyGridSpreadExportCell)exportContentCell2); if (this.ExportDescriptions) { PropertyGridSpreadExportContentCell exportContentCell3 = new PropertyGridSpreadExportContentCell(); exportContentCell3.Text = propertyGridItem.Description; exportContentCell3.Size = new Size((this.textCellWidth + this.valueCellWidth) * 2, exportChildItemsHidden ? 0 : -1); if (this.ExportVisualSettings) { this.GetStylesFromVisualCell((PropertyGridSpreadExportCell)exportContentCell3, (LightVisualElement)propertyGridItemElement.ValueElement); this.GetBordersFromVisualCell((PropertyGridSpreadExportCell)exportContentCell3, (LightVisualElement)propertyGridItemElement); } this.OnCellFormatting(new PropertyGridSpreadExportCellFormattingEventArgs((PropertyGridSpreadExportCell)exportContentCell3, (PropertyGridItemBase)propertyGridItem, currentRowIndex)); gridSpreadExportRow.Cells.Add((PropertyGridSpreadExportCell)exportContentCell3); } if (this.ExportVisualSettings) { this.elementProvider.CacheElement((IVirtualizedElement <PropertyGridItemBase>)propertyGridItemElement); propertyGridItemElement.Detach(); this.propertyGrid.PropertyGridElement.PropertyTableElement.ViewElement.Children.Remove((RadElement)propertyGridItemElement); } } else if (item is PropertyGridGroupItem) { this.isGridGrouped = true; PropertyGridGroupItem propertyGridGroupItem = item as PropertyGridGroupItem; PropertyGridGroupElement gridGroupElement = (PropertyGridGroupElement)null; if (this.ExportVisualSettings) { gridGroupElement = this.elementProvider.GetElement((PropertyGridItemBase)propertyGridGroupItem, (object)null) as PropertyGridGroupElement; this.propertyGrid.PropertyGridElement.PropertyTableElement.ViewElement.Children.Add((RadElement)gridGroupElement); gridGroupElement.Attach((PropertyGridItemBase)propertyGridGroupItem, (object)null); } PropertyGridSpreadExportContentCell exportContentCell = new PropertyGridSpreadExportContentCell(); exportContentCell.Text = propertyGridGroupItem.Label; ++exportContentCell.ColSpan; ++exportContentCell.ColSpan; exportContentCell.ColSpan += this.depthOfTree; if (this.ExportDescriptions) { ++exportContentCell.ColSpan; } exportContentCell.Size = new Size(this.textCellWidth + this.valueCellWidth + this.depthOfTree * this.ItemIndent, -1); if (this.ExportVisualSettings) { this.GetStylesFromVisualCell((PropertyGridSpreadExportCell)exportContentCell, (LightVisualElement)gridGroupElement.TextElement); this.GetBordersFromVisualCell((PropertyGridSpreadExportCell)exportContentCell, (LightVisualElement)gridGroupElement.TextElement); } this.OnCellFormatting(new PropertyGridSpreadExportCellFormattingEventArgs((PropertyGridSpreadExportCell)exportContentCell, (PropertyGridItemBase)propertyGridGroupItem, currentRowIndex)); gridSpreadExportRow.Cells.Add((PropertyGridSpreadExportCell)exportContentCell); if (this.ExportVisualSettings) { this.elementProvider.CacheElement((IVirtualizedElement <PropertyGridItemBase>)gridGroupElement); gridGroupElement.Detach(); this.propertyGrid.PropertyGridElement.PropertyTableElement.ViewElement.Children.Remove((RadElement)gridGroupElement); } } if (!exportChildItemsHidden) { exportChildItemsHidden = !item.Expanded && this.CollapsedItemOption == HiddenOption.ExportAsHidden; collapsedParentLevel = itemLevel; } return(gridSpreadExportRow); }