Esempio n. 1
0
        /// <summary>
        /// Ajoute des données dans la feuille.
        /// </summary>
        /// <param name="part">La feuille.</param>
        /// <param name="headers">Les entêtes.</param>
        /// <param name="data">Les données.</param>
        /// <param name="startCellReference">La référence de la cellule où poser les données.</param>
        public void AddTable(WorksheetPart part, ColumnFormat[] headers, CellContent[][] data, CellReference startCellReference)
        {
            Assertion.NotNull(part.Worksheet, "part.Worksheet");

            var sheetData = part.Worksheet.GetFirstChild <SheetData>();

            // Ajouter les entêtes
            if (headers != null)
            {
                var rowHeaders = new Row()
                {
                    RowIndex = startCellReference.RowIndex
                };
                foreach (var header in headers)
                {
                    var cell = new Cell()
                    {
                        CellReference = startCellReference.Reference,
                    };
                    FormatCellContent(cell, header.Header);

                    startCellReference.MoveRight();
                    rowHeaders.Append(cell);
                }
                sheetData.Append(rowHeaders);
                startCellReference.NewLine();
            }

            // Ajouter les valeurs
            int columnsLength = headers.Length;

            foreach (var datarow in data)
            {
                var row = new Row()
                {
                    RowIndex = startCellReference.RowIndex
                };

                for (int i = 0; i < columnsLength; i++)
                {
                    var format = headers[i];
                    var cell   = new Cell()
                    {
                        CellReference = startCellReference.Reference,
                    };
                    FormatCellContent(cell, datarow[i]);

                    startCellReference.MoveRight();
                    row.Append(cell);
                }

                sheetData.Append(row);

                startCellReference.NewLine();
            }

            var sheetDimension = new SheetDimension()
            {
                Reference = startCellReference.Dimensions
            };
        }