2015-10-01 5 views
1

Возможно, этот вопрос был задан, и вы уже можете указать мне в правильном направлении, если это так.Как экспортировать, чтобы отличить от отчета по SSRS с помощью элемента управления ReportViewer

У меня есть отчет о SSRS, и у меня есть Dataset/Datasource. Набор данных - это динамический запрос.

Идея заключается в том, чтобы экспортировать результат отчета через Excel.

У меня есть серверный диспетчер отчетов ReportViewer в моем Aspx. Кто-нибудь знает, есть ли способ экспорта в excel и как я могу его кодировать в моем коде.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, и я отправлю его.

EDIT: Проверка информации и других ссылок Я сделал следующий метод.

private void CreateEXCEL(Dictionary<string, string> parametros, string nombreReporte) 
    { 
     // Variables 
     Warning[] warnings; 
     string[] streamIds; 
     string mimeType = string.Empty; 
     string encoding = string.Empty; 
     string extension = string.Empty; 

     List<ReportParameter> parameters = new List<ReportParameter>(); 

     foreach (var d in parametros) 
     { 
      parameters.Add(new ReportParameter(d.Key, d.Value)); 
     } 



     // Setup the report viewer object and get the array of bytes 
     MyReportViewer.ProcessingMode = ProcessingMode.Remote; 
     MyReportViewer.ServerReport.ReportPath = nombreReporte; 

     MyReportViewer.ServerReport.SetParameters(parameters); 

     byte[] bytes = MyReportViewer.ServerReport.Render("EXCEL", null, out mimeType, out encoding, out extension, out streamIds, out warnings); 


     // Now that you have all the bytes representing the PDF report, buffer it and send it to the client. 
     Response.Buffer = true; 
     Response.Clear(); 
     Response.ContentType = mimeType; 
     Response.AddHeader("content-disposition", "attachment; filename=" + nombreReporte + "." + extension); 
     Response.BinaryWrite(bytes); // create the file 
     Response.Flush(); // send it to the client to download 

    } 

Но когда я исполню мой веб-приложение и вызывать этот метод у меня есть следующее сообщение об ошибке: к серверу поручена протокол нарушения Section=ResponseStatusLine

ли кто-нибудь прийти через проблему, как это?

+0

Это похоже на то, что вы ищете: http://stackoverflow.com/questions/12241736/export-to-excel-using- ReportViewer-встроенный-функции – Serialize

ответ

0

Вы можете использовать .Render метод:

Пример, представленный на сайте MSDN для Excel, но вы можете использовать тот же метод для PDF и любых других поддерживаемых форматов.

Обратите внимание, что также можно вручную экспортировать в Excel/PDF, используя встроенную функциональность ReportViewer.

0

Привет, если ваши столбцы динамичны в наборе данных, тогда в SSRS такого типа нет. Но я могу дать вам подсказку, как при редактировании, а SSRS - XML.

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

To be specific you need to generate RDLC file during runtime. Use the some common template and replace the template place holders with column value's

Лично я заверяю вас, что это не займет много времени, чтобы экспортировать данные. Но вы должны приложить определенные усилия для достижения этого. Я говорю это решение из своего прошлого опыта. Я сделал что-то вроде этого :)

Не стесняйтесь спрашивать, нужна ли вам дополнительная информация. Но не спрашивайте код.

Смежные вопросы