public void CreateExcelReport(string templateID, int userID) { var template = Storage.Select <Template>(templateID); entityID = template.Entity.ID.ToString(); var table = Storage.Select <BusinessContent>(entityID).GetTable(userID); if (!Frame.IsNeedAllInstances.Checked) { var instancesID = GetInstancesID(); DataRow[] rows = table.AsEnumerable().Where(x => instancesID.Contains(x["objID"].ToString())).ToArray(); table = rows.CopyToDataTable(); } string file = template.FileName; using (var stream = new MemoryStream()) { var builder = new ReportViewExcelBuilder(); builder.Create(stream, Teleform.Reporting.GroupReport.Make(template, table)); Response.Clear(); Response.ContentType = "text/html"; Response.AddHeader("content-disposition", string.Format("attachment;fileName={0}.xlsx", file)); Response.ContentEncoding = Encoding.UTF8; Response.BinaryWrite(stream.ToArray()); Response.Flush(); Response.End(); } }
public void ExcelReport(IQueryable <Rest> rests) { DataTableClass dt = new DataTableClass(rests); using (var stream = new MemoryStream()) { //var builder = new ExcelReportBuilder(); var builder = new ReportViewExcelBuilder(); builder.Create(stream, dt.dt); Response.Clear(); Response.ContentType = "text/html"; Response.AddHeader("content-disposition", "attachment;fileName=RestReport" + DateTime.Now.ToString("_dd_MM_yyyy") + ".xlsx"); Response.ContentEncoding = Encoding.UTF8; Response.BinaryWrite(stream.ToArray()); Response.Flush(); Response.End(); } // XLWorkbook wb = new XLWorkbook(); // wb.Worksheets.Add(dt.dt, "WorksheetName"); // var work = wb.Worksheets; // var z = "C:\\Users\\" + wb.Author + "\\Downloads\\RestReport" + DateTime.Now.ToString("_dd_MM_yyyy") + ".xlsx"; //wb.SaveAs("C:\\Users\\" + wb.Author + "\\Downloads\\RestReport" + DateTime.Now.ToString("_dd_MM_yyyy") + ".xlsx"); //ViewBag.Rests = db.GetRests(); //return RedirectToAction("Index"); }
protected void CreateExcelReportButton_Click(object sender, EventArgs e) { #if truef ReportView rv = new ReportView(); if (TemplateList.Items.Count == 0) { return; } rv.CreateExcelReport(TemplateList.SelectedValue); #else //Что бы ничего не выскакивало если нет событий, то есть нет для них шаблонов if (string.IsNullOrEmpty(TemplateList.SelectedValue)) { return; } EventObjectsGridView.AllowPaging = false; EventObjectsGridView.DataBind(); var templateID = TemplateList.SelectedValue; var output = new MemoryStream(); var report = new DataSet(); var listID = new StringBuilder(); string fileName; for (int j = 0; j < EventObjectsGridView.Rows.Count; j++) { listID.Append(EventObjectsGridView.DataKeys[j]["objID"].ToString()).Append(","); } if (listID.Length == 0) { throw new Exception("Для генерации отчёта нет строк"); } var objID = listID.ToString().Substring(0, listID.Length - 1); using (var connection = new SqlConnection(Global.ConnectionString)) { var queryString = "EXEC [report].[getReportData] @templateID, @objID, @cyr=1, @flFormat=1"; var command = new SqlCommand(queryString, connection); command.Parameters.AddRange( new SqlParameter[] { new SqlParameter { ParameterName = "templateID", DbType = DbType.Int32, Value = templateID }, new SqlParameter { ParameterName = "objID", DbType = DbType.String, Value = objID }, }); SqlDataAdapter da = new SqlDataAdapter(command); da.Fill(report); queryString = "SELECT [fileName] FROM [model].[R$Template] where [objID] = @templateID"; command = new SqlCommand(queryString, connection); command.Parameters.AddRange( new SqlParameter[] { new SqlParameter { ParameterName = "templateID", DbType = DbType.String, Value = templateID }, }); connection.Open(); try { fileName = command.ExecuteScalar().ToString() + ".xlsx"; } catch (NullReferenceException) { throw new Exception("Для генерации отчёта необходимо выбрать шаблон."); } connection.Close(); //var ExcelReportOpenXML = new ExcelReportBuilder(); var ExcelReportOpenXML = new ReportViewExcelBuilder(); ExcelReportOpenXML.CreateExcel(output, report); } //Загрузить файл с отчетом на комп пользователя Response.Clear(); Response.ContentType = "text/html"; Response.AddHeader("content-disposition", "attachment;fileName =" + fileName); Response.ContentEncoding = Encoding.UTF8; Response.BinaryWrite(output.ToArray()); Response.Flush(); Response.End(); EventObjectsGridView.AllowPaging = true; #endif }