Example #1
0
        private void AppendDataToExtendedSheet(Worksheet worksheet, SheetData sheetData,
                                               ExcelData data)
        {
            UInt32     rowIdex = 0;
            Row        row;
            MergeCells mergeCells = new MergeCells();

            // Add sheet data
            foreach (var rowData in data.Cells)
            {
                row = new Row {
                    RowIndex = ++rowIdex
                };
                sheetData.AppendChild(row);
                foreach (var excelCell in rowData)
                {
                    var cell = CreateCell(ColumnLetter(excelCell.ColumnIndex),
                                          (uint)(excelCell.RowIndex + 1), excelCell.Content ?? string.Empty);
                    row.AppendChild(cell);
                    if (excelCell.ColSpan > 1 || excelCell.RowSpan > 1)
                    {
                        var mergeCell = CreateMergeCell(excelCell);
                        mergeCells.Append(mergeCell);
                    }
                }
            }
            worksheet.InsertAfter(mergeCells, worksheet.Elements <SheetData>().First());
        }
Example #2
0
        public byte[] GenerateExcel <T>(IGridColumnCollection <T> columns, IEnumerable <T> items)
        {
            ExcelData excelData = new ExcelData();

            excelData.SheetName = Strings.Items;
            var header = new List <ExcelCell>();

            foreach (IGridColumn column in columns)
            {
                if (!column.Hidden)
                {
                    header.Add(new ExcelCell(column.Title));
                }
            }
            excelData.Cells.Add(header);

            foreach (var item in items)
            {
                List <ExcelCell> row = new List <ExcelCell>();
                foreach (IGridColumn column in columns)
                {
                    if (!column.Hidden)
                    {
                        var cell = column.GetCell(item) as GridCell;
                        cell.Encode = false;
                        row.Add(new ExcelCell(cell.ToString()));
                    }
                }
                excelData.Cells.Add(row);
            }
            return(GenerateExcel(excelData));
        }
Example #3
0
        private void AppendDataToSheet(SheetData sheetData, ExcelData data)
        {
            UInt32 rowIdex = 0;
            Row    row;
            var    cellIdex = 0;

            // Add sheet data
            foreach (var rowData in data.Cells)
            {
                cellIdex = 0;
                row      = new Row {
                    RowIndex = ++rowIdex
                };
                sheetData.AppendChild(row);
                foreach (var cellData in rowData)
                {
                    var cell = CreateCell(ColumnLetter(cellIdex++), rowIdex,
                                          cellData.Content ?? string.Empty);
                    row.AppendChild(cell);
                }
            }
        }
Example #4
0
        public byte[] GenerateExcel(ExcelData data)
        {
            var stream   = new MemoryStream();
            var document = SpreadsheetDocument.Create(stream, SpreadsheetDocumentType.Workbook);

            var workbookpart = document.AddWorkbookPart();

            workbookpart.Workbook = new Workbook();
            var worksheetPart = workbookpart.AddNewPart <WorksheetPart>();
            var sheetData     = new SheetData();

            worksheetPart.Worksheet = new Worksheet(sheetData);

            var sheets = document.WorkbookPart.Workbook.
                         AppendChild <Sheets>(new Sheets());

            var sheet = new Sheet()
            {
                Id      = document.WorkbookPart.GetIdOfPart(worksheetPart),
                SheetId = 1,
                Name    = data.SheetName ?? "Sheet 1"
            };

            sheets.AppendChild(sheet);

            if (data.ExtendedSheet)
            {
                AppendDataToExtendedSheet(worksheetPart.Worksheet, sheetData, data);
            }
            else
            {
                AppendDataToSheet(sheetData, data);
            }

            workbookpart.Workbook.Save();
            document.Close();

            return(stream.ToArray());
        }