示例#1
0
        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;
        }
示例#2
0
        private void Select(int value)
        {
            var selectionItem = DataItems.ElementAt(value).AsSelectionItem();

            if (SelectionPattern.CanSelectMultiple)
            {
                selectionItem.AddToSelection();
            }
            else
            {
                selectionItem.Select();
            }
        }
示例#3
0
 public void SingleSelect(int value)
 {
     DataItems.ElementAt(value).AsSelectionItem().Select();
 }
示例#4
0
 public void Remove(int dataItemIndex)
 {
     DataItems.ElementAt(dataItemIndex).AsSelectionItem().RemoveFromSelection();
 }
示例#5
0
 public bool IsRowSelected(int dataItemIndex)
 {
     return(DataItems.ElementAt(dataItemIndex).AsSelectionItem().Current.IsSelected);
 }