Exemplo n.º 1
0
        public void PrepareExport(GridControl grid, bool exportColors, HashSet <GridColumn> excludeColumn,
                                  Action <ExcelExportData, IDocumentPresenter, ExcelExportProgressCommand> afterExportComplete,
                                  ExcelExportProgressCommand progressCommand, IDocumentPresenter document)
        {
            Rows = grid.VisibleRowCount;
            progressCommand.Rows       = Rows;
            progressCommand.CurrentRow = 0;
            var tv = grid.View as TableView;
            var eo = new ExcelExportObject
            {
                VisibleColumns =
                    grid.Columns.Where(
                        c => !excludeColumn.Contains(c) && !(c is GridExpandColumn) && c.Visible)
                    .OrderBy(c => c.VisibleIndex)
                    .ToList(),
                RowBrushes          = new Brush[grid.VisibleRowCount],
                CurrentRow          = 0,
                PrevRow             = 0,
                ExportColors        = exportColors && tv != null,
                Grid                = grid,
                RowData             = new List <object>(),
                ProgressCommand     = progressCommand,
                AfterExportComplete = afterExportComplete,
                Document            = document
            };

            Headers = new RealColumnHeadersCollection(eo.VisibleColumns.Select(c => GetHeaderString(c.Header)).ToArray());
            Columns = eo.VisibleColumns.Count;
            NumberFormatting.ClearFormats();
            for (int i = 0; i < eo.VisibleColumns.Count; i++)
            {
                NumberFormatting.AddFormat(i, eo.VisibleColumns[i].FieldType);
            }
            eo.CellBrushes = new Brush[grid.VisibleRowCount, eo.VisibleColumns.Count];
            eo.Cells       = new string[grid.VisibleRowCount, eo.VisibleColumns.Count];
            if (eo.ExportColors)
            {
                eo.PhantomCells = new CellContentPresenter[32, Columns];
                eo.PhantomRows  = new GridRowContent[32];
                for (int i = 0; i < 32; i++)
                {
                    eo.PhantomRows[i] = new GridRowContent()
                    {
                        Style = tv.RowStyle
                    };
                    for (int j = 0; j < Columns; j++)
                    {
                        eo.PhantomCells[i, j] = new CellContentPresenter {
                            Style = eo.VisibleColumns[j].CellStyle
                        }
                    }
                    ;
                }
            }

            DoExport(eo);
        }
Exemplo n.º 2
0
        public void TestNumberFormatting()
        {
            var numbers = new [] {
                "1234", "1,234",
                "123", "123",
                "1234.56", "1,234.56",
                "12345678.90", "12,345,678.90",
                "12345678.9012345", "12,345,678.9012345",
                "-1234.56", "-1,234.56"
            };

            for (var i = 0; i < numbers.Length; i += 2)
            {
                Assert.AreEqual(NumberFormatting.AddThousandsSeparators(numbers[i]), numbers[i + 1]);
            }
        }
        public void ReturnGroupedNumberString(string input, string expectedOutput)
        {
            var result = NumberFormatting.InsertGroupSeparator(input);

            result.Should().BeEquivalentTo(expectedOutput);
        }
        public void ReturnFormattedResult_GivenATextualNumber(string inputNumber, int precision, string expectedOutput)
        {
            var result = NumberFormatting.ConvertToNumberFormat(inputNumber, precision);

            result.Should().BeEquivalentTo(expectedOutput);
        }
        public void ReturnRoundedResults_WhenLastFractionalDigitIsGreaterEqualsRoundingBarrier(string inputNumber, string expectedOutput)
        {
            var result = NumberFormatting.RoundToMaxArithmeticPrecision(inputNumber, 3);

            result.Should().BeEquivalentTo(expectedOutput);
        }
        public void ReturnReducedFractionalPart_WhenFractionalPartIsLongerThanMaxPrecision_GivenANumber(double inputNumber, int maxPrecision, string expectedOutput)
        {
            var result = NumberFormatting.RoundToMaxArithmeticPrecision(inputNumber, maxPrecision);

            result.Should().BeEquivalentTo(expectedOutput);
        }