Пытаетесь экспортировать сгруппированные данные сетки Telerik Winform, чтобы преуспеть? - PullRequest
0 голосов
/ 01 октября 2019

Когда я экспортирую данные сетки без группировки, она отлично экспортируется, но когда я экспортирую данные сетки с группировкой, она пропускает строки, а если я удаляю строки заголовка, тогда данные экспортируются идеально с или без группировки? Я думаю, что проблема в строках заголовка, когда я удаляю строки заголовка, то это работает отлично. Подскажите пожалуйста, как мне настроить строки заголовка так, чтобы сгруппированные данные можно было без проблем экспортировать

 private void btnExport_Click(object sender, EventArgs e)
        {
            saveFileDialog1.FileName = this.ReportHeaderText.Replace(' ', '-').Replace('/', '-');
            saveFileDialog1.OverwritePrompt = true;

            if (saveFileDialog1.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            if (saveFileDialog1.CheckFileExists)
            {

            }


           if (saveFileDialog1.FileName.Equals(String.Empty))
            {
                RiceMsgBox.ShowErrorBox("Please enter a file name.");
                return;
            }



            string fileName = this.saveFileDialog1.FileName;
            bool openExportFile = false;

            RunExportToExcelML(fileName, ref openExportFile);
            if (openExportFile)
            {
                try
                {
                    System.Diagnostics.Process.Start(fileName);
                }
                catch (Exception ex)
                {
                    RiceMsgBox.ShowErrorBox("The file cannot be opened on your system");
                }
            }
            this.tabControl1.SelectedIndex = 1;
        }


  private void RunExportToExcelML(string fileName, ref bool openExportFile)
        {
            Telerik.WinControls.Export.GridViewSpreadExport exporter = new Telerik.WinControls.Export.GridViewSpreadExport(gridReport, 0);

            exporter.HiddenColumnOption = Telerik.WinControls.UI.Export.HiddenOption.DoNotExport;
            exporter.CellFormatting += exporter_CellFormatting;
            exporter.ExportVisualSettings = true;
            exporter.SheetMaxRows = ExcelMaxRows._1048576;
            exporter.SheetName = System.Text.RegularExpressions.Regex.Replace(this.ReportHeaderText.Length > 30 ? this.ReportHeaderText.Substring(0,30) : this.ReportHeaderText, @"[^0-9a-zA-Z]+", ","); 

            exporter.SummariesExportOption = SummariesOption.ExportAll;
            Telerik.WinControls.Export.SpreadExportRenderer exportRenderer = new Telerik.WinControls.Export.SpreadExportRenderer();
            exportRenderer.WorkbookCreated += renderer_WorkbookCreated;
            // exportRenderer.ExcelTableCreated += exporter_ExcelTableCreated;
            //exporter.CellFormatting += exporter_ExcelCellFormatting;

            //FormatGridColumns(gridReport);
            try
            {
                exporter.RunExport(fileName, exportRenderer);
                var dialog = RiceMsgBox.GetQuestionBox("The data in the grid was exported successfully. Do you want to open the file?");
                if (dialog == DialogResult.Yes)
                {
                    openExportFile = true;                    
                }
                else
                {
                    openExportFile = false;
                }
            }
            catch(Exception ex)
            {
                RiceMsgBox.ShowErrorBox("Error exporting data.");
            }
        }

        void exporter_CellFormatting(object sender, Telerik.WinControls.Export.CellFormattingEventArgs e)
        {
            CellBorders borders = new CellBorders();
            borders.Top = new CellBorder(CellBorderStyle.Thin, new ThemableColor(System.Windows.Media.Colors.Black));
            borders.Bottom = new CellBorder(CellBorderStyle.Thin, new ThemableColor(System.Windows.Media.Colors.Black));
            borders.Right = new CellBorder(CellBorderStyle.Thin, new ThemableColor(System.Windows.Media.Colors.Black));
            borders.Left = new CellBorder(CellBorderStyle.Thin, new ThemableColor(System.Windows.Media.Colors.Black));
            e.CellStyleInfo.Borders = borders;
        }

        void renderer_WorkbookCreated(object sender, Telerik.WinControls.Export.WorkbookCreatedEventArgs e)
        {
            PatternFill solidPatternFill = new PatternFill(PatternType.Solid, System.Windows.Media.Colors.Transparent, System.Windows.Media.Colors.Transparent);
            CellValueFormat textFormat = new CellValueFormat("@");
            string dateRange = "( From Date : " + dtpFromDate.Text + " - To Date : " + dtpToDate.Text + " )";

            Worksheet worksheet = e.Workbook.Sheets[0] as Worksheet;

            worksheet.Columns[worksheet.UsedCellRange].AutoFitWidth();
            CellRange range = new CellRange(0, 0, 1, gridReport.Columns.Count);
            CellSelection header = worksheet.Cells[range];
            if (header.CanInsertOrRemove(range, ShiftType.Down))
            {
                header.Insert(InsertShiftType.Down);
            }
            header.Merge();
            header.SetFormat(textFormat);
            header.SetHorizontalAlignment(Telerik.Windows.Documents.Spreadsheet.Model.RadHorizontalAlignment.Center);
            header.SetVerticalAlignment(Telerik.Windows.Documents.Spreadsheet.Model.RadVerticalAlignment.Center);
            header.SetFontFamily(new ThemableFontFamily("Rockwell"));
            header.SetFontSize(24);
            header.SetFill(solidPatternFill);
            header.SetValue(this.ReportHeaderText);



        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...