gcogco10 Ответов: 1

Как экспортировать отчет в crystal-reports с помощью ASP.NET MVC как excel, а не pdf?


Привет команда

Мне действительно нужна помощь, у меня есть логика для загрузки отчета, но я не хочу, чтобы мое расширение файла было PDF. Скорее как Microsoft Excel или Word, мне нужно некоторое руководство, основанное на приведенной ниже логике;

Что я уже пробовал:

<pre> //GET/Download_Report

        public ActionResult Download_ExcelReport()
        {
            //var _db = new eNtsaRegistration();

            var data = (from q in db.eNtsaRegForms select new { 
            Id = q.Id,
            FirstName = q.FirstName
            
            }).ToList();

            ReportDocument rpt = new ReportDocument();
            rpt.Load(Server.MapPath("~/Reports/uYiloReporting.rpt"));
            rpt.SetDataSource(data);


            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();

            try
            {
                Stream stream = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                stream.Seek(0, SeekOrigin.Begin);
                return File(stream, "application/excel", "eNtsaRegistrationForm.excel");
            }
            catch
            {
                throw;
                //return View();
            }

           
        }

1 Ответов

Рейтинг:
10

Richard Deeming

Изменение формата файла-это не просто указание другого типа содержимого или расширения файла. Содержимое PDF-файла не может быть интерпретировано как файл Excel.

Вам нужно указать правильный ExportFormatType для типа файла, который вы пытаетесь экспортировать. Вам также необходимо указать правильный тип контента и расширение файла.

Например:

Stream stream = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel);
stream.Seek(0, SeekOrigin.Begin);
return File(stream, "application/vnd.ms-excel", "eNtsaRegistrationForm.xls");
Перечисление ExportFormatType (CrystalDecisions.Общий Доступ) | Microsoft Docs[^]


gcogco10

Большое спасибо, Ричард.