public virtual void GenerateWorksheetPartContent(WorksheetPart worksheetPart) { Worksheet worksheet = new Worksheet(); SheetData sheetdata = new SheetData(); string[] headerColumns = GetColumnHeaders(DataItems.ElementAt(0).GetType()); Row row = new Row(); Cell cell = new Cell(); int RowIndexer = 1; int ColumnIndexer = 1; row.RowIndex = (UInt32)RowIndexer; foreach (var header in headerColumns) { cell = new Cell(); cell.CellReference = ColumnAddress(ColumnIndexer) + RowIndexer; cell.DataType = GetCellDataType(header); cell.InlineString = new InlineString(new Text(header)); // consider using cell.CellValue. Then you don't need to use InlineString. // Because it seems you're not using any rich text so you're just bloating up // the XML. row.AppendChild(cell); ColumnIndexer++; } sheetdata.Append(row); RowIndexer = 2; foreach (var item in DataItems) { row = new Row(); row.RowIndex = (UInt32)RowIndexer; // this follows the same starting column index as your column header. // I'm assuming you start with column 1. Change as you see fit. ColumnIndexer = 1; foreach (string header in headerColumns) { cell = new Cell(); // I moved it here so it's consistent with the above part // Also, the original code was using the row index to calculate // the column name, which is weird. cell.CellReference = ColumnAddress(ColumnIndexer) + RowIndexer; object value = Utility.GetPropertyValue(item, header); cell.DataType = GetCellDataType(value); if (value != null) { cell.InlineString = new InlineString(new Text(value.ToString())); } row.AppendChild(cell); ColumnIndexer++; } RowIndexer++; sheetdata.Append(row); } worksheet.Append(sheetdata); worksheetPart.Worksheet = worksheet; }
private void Select(int value) { var selectionItem = DataItems.ElementAt(value).AsSelectionItem(); if (SelectionPattern.CanSelectMultiple) { selectionItem.AddToSelection(); } else { selectionItem.Select(); } }
public void SingleSelect(int value) { DataItems.ElementAt(value).AsSelectionItem().Select(); }
public void Remove(int dataItemIndex) { DataItems.ElementAt(dataItemIndex).AsSelectionItem().RemoveFromSelection(); }
public bool IsRowSelected(int dataItemIndex) { return(DataItems.ElementAt(dataItemIndex).AsSelectionItem().Current.IsSelected); }