Exemple #1
0
        private string SerializeAndRead <T>(ExportDataRequest exportDataRequest, IEnumerable <T> items) where T : IExportable
        {
            exportDataRequest.ProviderConfig = exportDataRequest.ProviderConfig ?? new CsvProviderConfiguration()
            {
            };

            using (var stream = new MemoryStream())
                using (var writer = new StreamWriter(stream, Encoding.UTF8)
                {
                    AutoFlush = true
                })
                {
                    using (var csvExportProvider = new CsvExportProvider(exportDataRequest))
                    {
                        foreach (var item in items)
                        {
                            csvExportProvider.WriteRecord(writer, item);
                        }
                    }

                    stream.Seek(0, SeekOrigin.Begin);

                    return(new StreamReader(stream).ReadToEnd());
                }
        }
Exemple #2
0
        public static void ProcessExport(HttpContext context)
        {
            IList <string>      columnFields;
            IDataExportProvider provider;
            string extension;
            string portal  = context.Request["portal"];
            string columns = context.Request["columns"];

            //获取导出提供者
            switch (context.Request["exportFormat"] ?? "excel")
            {
            default:
            case "excel":
                provider  = new LocaledExcelExportProvider();
                extension = "xls";
                break;

            case "csv":
                provider  = new CsvExportProvider();
                extension = "csv";
                break;

            case "txt":
                provider  = new TextExportProvider();
                extension = "txt";
                break;
            }


            //获取列名
            // Regex reg = new Regex("^export_fields\\[\\d+\\]$", RegexOptions.IgnoreCase);
            columnFields = new List <string>();

//            foreach (string key in context.Request.QueryString.Keys)
//            {
//                if (reg.IsMatch(key))
//                {
//                    columnFields.Add(context.Request.QueryString[key]);
//                }
//            }


            IDataExportPortal _portal = ExportItemManager.GetPortal(context.Request.QueryString["portal"]);

            if (_portal == null)
            {
                throw new ArgumentNullException("_portal");
            }

            ExportParams parameter = DataExportDirector.GetExportParams(context.Request["params"], columnFields.ToArray());


            byte[] bytes = DataExportDirector.Export(_portal, parameter, provider);

            context.Response.BinaryWrite(bytes);
            context.Response.ContentType = "application/octet-stream";
            context.Response.AppendHeader("Content-Disposition", String.Format("attachment;filename=\"{0:yyyyMMdd-hhssfff}.{1}\"",
                                                                               DateTime.Now,
                                                                               extension));
        }
Exemple #3
0
        public void ProcessExport(string portal, string columns)
        {
            IList <string>      columnNames;
            IDataExportProvider provider;
            string extension;

            //获取导出提供者
            switch (this.Request["exportFormat"] ?? "excel")
            {
            default:
            case "excel":
                provider  = new ExcelExportProvider();
                extension = "xls";
                break;

            case "csv":
                provider  = new CsvExportProvider();
                extension = "csv";
                break;

            case "txt":
                provider  = new TextExportProvider();
                extension = "txt";
                break;
            }


            //获取列名
            Regex reg = new Regex("^columnNames\\[\\d+\\]$", RegexOptions.IgnoreCase);

            columnNames = new List <string>();

            foreach (string key in this.Request.QueryString.Keys)
            {
                if (reg.IsMatch(key))
                {
                    columnNames.Add(this.Request.QueryString[key]);
                }
            }



            IDataExportPortal _portal = ExportHelper.GetPortal(portal, this.Request["params"], columnNames.ToArray());



            byte[] bytes = DataExportDirector.Export(_portal, provider);

            this.Response.BinaryWrite(bytes);
            this.Response.ContentType = "application/octet-stream";
            this.Response.AppendHeader("Content-Disposition", String.Format("attachment;filename=\"{0:yyyyMMdd-hhssfff}.{1}\"",
                                                                            DateTime.Now,
                                                                            extension));
        }
Exemple #4
0
        public static void ProcessExport(HttpContext context)
        {
            IList<string> columnFields;
            IDataExportProvider provider;
            string extension;
            string portal = context.Request["portal"];
            string columns = context.Request["columns"];

            //获取导出提供者
            switch (context.Request["exportFormat"] ?? "excel")
            {
                default:
                case "excel":
                    provider = new LocaledExcelExportProvider();
                    extension = "xls";
                    break;
                case "csv":
                    provider = new CsvExportProvider();
                    extension = "csv";
                    break;
                case "txt":
                    provider = new TextExportProvider();
                    extension = "txt";
                    break;
            }

            //获取列名
               // Regex reg = new Regex("^export_fields\\[\\d+\\]$", RegexOptions.IgnoreCase);
            columnFields = new List<string>();

            //            foreach (string key in context.Request.QueryString.Keys)
            //            {
            //                if (reg.IsMatch(key))
            //                {
            //                    columnFields.Add(context.Request.QueryString[key]);
            //                }
            //            }

            IDataExportPortal _portal = ExportItemManager.GetPortal(context.Request.QueryString["portal"]);
            if (_portal == null) throw new ArgumentNullException("_portal");

            ExportParams parameter = DataExportDirector.GetExportParams(context.Request["params"], columnFields.ToArray());

            byte[] bytes = DataExportDirector.Export(_portal, parameter, provider);

            context.Response.BinaryWrite(bytes);
            context.Response.ContentType = "application/octet-stream";
            context.Response.AppendHeader("Content-Disposition", String.Format("attachment;filename=\"{0:yyyyMMdd-hhssfff}.{1}\"",
                DateTime.Now,
                extension));
        }
        public void ProcessExport(string portal, string columns)
        {
            IList<string> columnNames;
            IDataExportProvider provider;
            string extension;

            //获取导出提供者
            switch (this.Request["exportFormat"] ?? "excel")
            {
                default:
                case "excel":
                    provider = new ExcelExportProvider();
                    extension = "xls";
                    break;
                case "csv":
                    provider = new CsvExportProvider();
                    extension = "csv";
                    break;
                case "txt":
                    provider = new TextExportProvider();
                    extension = "txt";
                    break;
            }

            //获取列名
            Regex reg = new Regex("^columnNames\\[\\d+\\]$", RegexOptions.IgnoreCase);
            columnNames = new List<string>();

            foreach (string key in this.Request.QueryString.Keys)
            {
                if (reg.IsMatch(key))
                {
                    columnNames.Add(this.Request.QueryString[key]);
                }
            }

            IDataExportPortal _portal = ExportHelper.GetPortal(portal, this.Request["params"], columnNames.ToArray());

            byte[] bytes = DataExportDirector.Export(_portal, provider);

            this.Response.BinaryWrite(bytes);
            this.Response.ContentType = "application/octet-stream";
            this.Response.AppendHeader("Content-Disposition", String.Format("attachment;filename=\"{0:yyyyMMdd-hhssfff}.{1}\"",
                DateTime.Now,
                extension));
        }