Пример #1
0
        private void ExportToStreamAsync(TreeViewSpreadExportDataSnapshot treeViewData, Stream stream)
        {
            int percentProgress = 0;
            int num1            = 0;

            this.spreadExportRenderer.AddWorksheet(this.SheetName);
            for (int index = 0; index < treeViewData.ExportRows.Count; ++index)
            {
                if (num1 > this.sheetMaxRowsNumber)
                {
                    this.spreadExportRenderer.AddWorksheet(this.SheetName);
                    num1 = 0;
                    this.columnWidths.Clear();
                }
                this.AddRow(treeViewData.ExportRows[index], num1);
                int num2 = index * 100 / treeViewData.ExportRows.Count;
                if (percentProgress != num2)
                {
                    percentProgress = num2;
                    this.GetWorker().ReportProgress(percentProgress);
                }
                ++num1;
            }
            if (this.ExportChildNodesGrouped)
            {
                this.GroupWorksheetRows(num1);
            }
            this.spreadExportRenderer.CallWorkbookCreated();
            this.spreadExportRenderer.Export(stream);
        }
Пример #2
0
        private void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            this.spreadExportRenderer.RegisterFormatProvider(this.ExportFormat);
            this.spreadExportRenderer.GetFormatProvider(this.ExportFormat);
            this.columnWidths = new List <int>();
            TreeViewSpreadExportDataSnapshot treeViewData1 = e.Argument as TreeViewSpreadExportDataSnapshot;

            if (treeViewData1 != null)
            {
                string     path = Path.GetDirectoryName(treeViewData1.FilePath) + (object)Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(treeViewData1.FilePath) + this.spreadExportRenderer.GetFileExtension(this.ExportFormat);
                FileStream fileStream;
                if (this.FileExportMode == FileExportMode.NewSheetInExistingFile && File.Exists(path) && this.ExportFormat == SpreadExportFormat.Xlsx)
                {
                    fileStream = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite, 32768, false);
                    this.spreadExportRenderer.ImportWorkbook((Stream)fileStream);
                }
                else
                {
                    fileStream = new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite, 32768, false);
                    this.spreadExportRenderer.CreateWorkbook();
                }
                using (fileStream)
                    this.ExportToStreamAsync(treeViewData1, (Stream)fileStream);
                this.GetWorker().ReportProgress(100);
                ControlTraceMonitor.TrackAtomicFeature((RadControl)this.treeView, "Export", (object)path);
            }
            else
            {
                this.spreadExportRenderer.CreateWorkbook();
                List <object> objectList = e.Argument as List <object>;
                TreeViewSpreadExportDataSnapshot treeViewData2 = objectList[0] as TreeViewSpreadExportDataSnapshot;
                Stream stream = objectList[1] as Stream;
                this.ExportToStreamAsync(treeViewData2, stream);
                this.GetWorker().ReportProgress(100);
                e.Result = (object)stream;
                ControlTraceMonitor.TrackAtomicFeature((RadControl)this.treeView, "Export");
            }
        }