コード例 #1
0
        public static IWorkbookFormatProvider GetFormatProvider(string extension)
        {
            IWorkbookFormatProvider formatProvider;
            switch (extension)
            {
                case XlsxFormat:
                    formatProvider = new XlsxFormatProvider();
                    break;
                case CsvFormat:
                    formatProvider = new CsvFormatProvider();
                    ((CsvFormatProvider)formatProvider).Settings.HasHeaderRow = true;
                    break;
                case TxtFormat:
                    formatProvider = new TxtFormatProvider();
                    break;
                case PdfFormat:
                    formatProvider = new PdfFormatProvider();
                    break;
                default:
                    formatProvider = null;
                    break;
            }

            return formatProvider;
        }
コード例 #2
0
        public JsonResult Export(string model, string data, string format, string title)
        {
            Workbook workbook = new Workbook();
            workbook.History.IsEnabled = false;
            workbook.SuspendLayoutUpdate();

            workbook.Sheets.Add(SheetType.Worksheet);
            Worksheet worksheet = workbook.ActiveWorksheet;
            worksheet.Name = title;

            var modelObject = JsonConvert.DeserializeObject<IList<ColumnSettings>>(model);
            var dataObject = JsonConvert.DeserializeObject<dynamic>(data);
            var columnCount = modelObject.Count;

            for (int idx = 0; idx < columnCount; idx++)
            {
                var modelCol = modelObject[idx];
                string columnName = modelCol.Title ?? modelCol.Field;
                worksheet.Cells[0, idx].SetValue(columnName);
            }

            for (int rowIdx = 1; rowIdx < dataObject.Count; rowIdx++)
            {
                for (int colIdx = 0; colIdx < modelObject.Count; colIdx++)
                {
                    worksheet.Cells[rowIdx, colIdx].SetValue(dataObject[rowIdx - 1][modelObject[colIdx].Field].Value);
                }
            }

            if (format == "XLSX")
            {
                ColumnSelection columnSelection = worksheet.Columns[0, columnCount];
                columnSelection.AutoFitWidth();
            }

            workbook.ResumeLayoutUpdate();

            IWorkbookFormatProvider formatProvider = null;
            if (format == "XLSX")
            {
                formatProvider = new XlsxFormatProvider();
            }
            else
            {
                formatProvider = new CsvFormatProvider();
            }

            using (MemoryStream output = new MemoryStream())
            {
                formatProvider.Export(workbook, output);
                Session[title] = output.ToArray();
            }

            return Json(new { success = true }, JsonRequestBehavior.AllowGet);
        }
コード例 #3
0
        private static IWorkbookFormatProvider GetFormatProvider(string extension)
        {
            switch (extension)
            {
            case XlsxFormat:
                return(new XlsxFormatProvider());

            case CsvFormat:
                IWorkbookFormatProvider formatProvider = new CsvFormatProvider();
                (formatProvider as CsvFormatProvider).Settings.HasHeaderRow = true;
                return(formatProvider);

            case TxtFormat:
                return(new TxtFormatProvider());

            case PdfFormat:
                return(new PdfFormatProvider());

            default:
                return(null);
            }
        }
コード例 #4
0
        private static Workbook CreateWorkBook(GridViewDataControl grid)
        {
            Workbook book;

            using (var stream = new MemoryStream())
            {
                grid.Export(stream, new GridViewExportOptions
                    {
                        Format = Telerik.Windows.Controls.ExportFormat.Csv,
                        ShowColumnFooters = grid.ShowColumnFooters,
                        ShowColumnHeaders = grid.ShowColumnHeaders,
                        ShowGroupFooters = grid.ShowGroupFooters,
                    });

                stream.Position = 0;

                book = new CsvFormatProvider().Import(stream);
            }

            return book;
        }
コード例 #5
0
        public static Workbook CreateWorkBook(RadGridView grid)
        {
            Workbook book = null;

            using (var stream = new MemoryStream())
            {
                int index = 0;
                foreach (GroupDescriptor group in grid.GroupDescriptors)
                {
                    grid.Columns.Insert(index++, new GridViewDataColumn() { DataMemberBinding = new System.Windows.Data.Binding(group.Member) });
                }

                grid.ElementExporting += elementExporting;

                var exportOptions = new GridViewExportOptions()
                {
                    Format = ExportFormat.Csv,
                    ShowColumnFooters = grid.ShowColumnFooters,
                    ShowColumnHeaders = grid.ShowColumnHeaders,
                    ShowGroupFooters = grid.ShowGroupFooters,
                    Culture = new CultureInfo("fr-FR"),
                    Items = grid.Items
                };
                grid.Export(stream, exportOptions);

                grid.ElementExporting -= elementExporting;

                stream.Position = 0;

                var csvProvider = new CsvFormatProvider();
                book = csvProvider.Import(stream);

                // /!\ telerik date format workaround
                var pattern = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern;
                var dateCellFormat = new CellValueFormat(pattern);

                var dateColsIdx = grid.Columns.Cast<GridViewColumn>().OfType<GridViewDataColumn>().Where(col => col.DataType == typeof(DateTime)).Select(col => col.DisplayIndex).ToList();

                if (dateColsIdx.Any())
                {
                    var skipFirstRow = true;
                    var rowCount = grid.Items.Count;
                    for (int i = skipFirstRow ? 1 : 0; i < rowCount; i++)
                    {
                        foreach (var colIdx in dateColsIdx)
                        {
                            book.Worksheets[0].Cells[i, colIdx].SetFormat(dateCellFormat);
                        }
                    }
                }

                foreach (GroupDescriptor group in grid.GroupDescriptors)
                {
                    grid.Columns.RemoveAt(0);
                }
            }

            return book;
        }
コード例 #6
0
 private void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
 {
     CsvFormatProvider formatProvider = new CsvFormatProvider();
     Workbook          workbook       = formatProvider.Import(e.Result);
 }