При выгрузке отчета в excel выделены все страницы одновременно
столкнулся с проблемой выгрузки отчетов в excel, которые имеют структуру 2 и более страниц отчета
Проблема заключается в том, что при открытии отчета через веб-форму(построено всё на MVC) формируется EXCEL который автоматически выделяет все страницы отчета
. В таком случае невозможно пользоваться инструментами Excel "Сортировка и фильтр".
Приходится руками выделять вторую страницу, чтобы фильтрация становилась доступной.
Отчет построен через FastReport.
Страницы отчета сделаны с помощью новой страницы Элемент "ReportPage"
Пробовал менять свойства в FastReport на вкладке страницы отчета, но это не помогло
Функция которая формирует содержимое отчёта :
public static byte[] Create(DataSet reportData, string fileType, string reportTemplateFilename, Dictionary<string, object> param = null)
{
// Содержимое файла
byte[] fileContent = new byte[0];
using (FileStream fs =
new FileStream(HttpContext.Current.Server.MapPath("~/ReportTemplates/" + reportTemplateFilename), FileMode.Open, FileAccess.Read))
{
// Формирование отчета в зависимости от выбранного формата
switch (fileType.ToUpper())
{
case "PDF":
fileContent = FastReportFactory.CreatePdf(fs, reportData, param);
break;
case "XLSX":
fileContent = FastReportFactory.CreateExcel(fs, reportData, param);
break;
}
}
return fileContent;
}
private static byte[] CreateExcel(Stream fastReportTemplateStream, DataSet ds, RepType repType, Dictionary<string, object> parameters = null)
{
FastReport.Utils.Config.WebMode = true;
using (Report report = new Report())
{
report.Load(fastReportTemplateStream);
report.RegisterData(ds);
if (parameters != null)
foreach (var prm in parameters)
report.SetParameterValue(prm.Key, prm.Value);
report.Prepare();
return CreateReport(report, repType);
}
}
public static byte[] CreateReport(Report report, RepType repType)
{
using (MemoryStream mem_str = new MemoryStream())
{
switch (repType)
{
case RepType.XLSX:
report.Export(new FastReport.Export.OoXML.Excel2007Export(), mem_str);
break;
case RepType.PDF:
report.Export(new FastReport.Export.Pdf.PDFExport(), mem_str);
break;
}
return mem_str.ToArray();
}
throw new Exception("не удалось создать MemoryStream");
}
Вопрос: Как сделать так, чтобы при выгрузке отчета в Excel страницы не выделялись все сразу, чтобы не выполнять доп. действий уже в самом файле для активации фильтрации?