27. april 2008 - 19:30Der er
1 kommentar og 1 løsning
Opret Excel fil i Memory og få data via DataSet
Hej e.
Jeg har følgende problem. Jeg har brug for at gemme mit DataSet som Excel, men ikke som en fil, men i en MemoryStream.
Jeg skal kunne følgende.
Tage min data fra et DataSet og oprette en Excel fil i Menory. Hvis der er muligt skal filen IKKE gemmes lokalt. Denne fil skal jeg så gemme i en Memory stream, så jeg kan smide den ind i SharePoint.
De Eks. jeg kan har fundet på nettet benytter tit den metode at man streamer til Excel, men den dur ikke her.
Mød en af Nordens fremmeste eksperter i adfærdsdesign – Morten Münster, der bl.a. har skrevet ” Jytte fra marketing er desværre gået for i dag” – på Computerworld Cloud & AI Festival.
Jeg har fundet en masse eksmepler som dette, men det giver mig vel ikke en Excel fil, men får bar Excel til at vise resultatet... eller?
using System; using System.Data; using System.IO; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;
namespace Whatever { /// /// This class provides a method to write a dataset to the HttpResponse as /// an excel file. /// public class ExcelExport { public static void ExportDataSetToExcel(DataSet ds, string filename) { HttpResponse response = HttpContext.Current.Response;
// first let's clean up the response.object response.Clear(); response.Charset = "";
// set the response mime type for excel response.ContentType = "application/vnd.ms-excel"; response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
// create a string writer using (StringWriter sw = new StringWriter()) { using (HtmlTextWriter htw = new HtmlTextWriter(sw)) { // instantiate a datagrid DataGrid dg = new DataGrid(); dg.DataSource = ds.Tables[0]; dg.DataBind(); dg.RenderControl(htw); response.Write(sw.ToString()); response.End(); } } } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.