你用excel相关的插件,可以解决。
也可以简单的使用
page.Response.ContentType = "application/ms-excel";
page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + "fileName.xls");
page.Response.Charset = encoding.ToString();
page.Response.ContentEncoding = encoding;
page.Response.Write("<table><tr><td>contentStrings</td></tr></table>");
page.Response.Flush();
page.Response.End();
你好,我这边是JqueryUI 的datagrid 数据外导。已经生成了excel 的XML 格式,现在就是怎么把这个XML格式直接也字节流的形式下载到客户端?
@luoxiang: 那你就把xml字节流的格式保存为.xls或者为.xlsx格式文件就行了,在客户端用个href.src=你的文件地址就行了
或者直接page.Response.Write("你的xml文件格式字符串");
@Albert Fei: 你好你的意思是,必须保存一份数据到服务器上才能下载给客户端吗?
@luoxiang: 你excel内容是哪里来的? 客户端生成的吗 还是服务器上生成的。
还有也可以不用保存在硬盘上,直接读到内存再response到客户端就行了。
能说的更详细些吗?你是想做excel导出吗?
我这边是JqueryUI 的datagrid 数据外导成EXCEL,已经生成啦EXCEL的XML形式。现在我想把这个XML通过$.post到一般处理类来下载。一般处理类是这样: string exportContent = context.Request.Form["ExportContent"].ToString(); context.Response.ContentType = "application/ms-excel"; context.Response.AppendHeader("Content-Disposition", "attachment;filename=导出测试.xls"); context.Response.Charset = "GB2312"; context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); context.Response.Write(exportContent); context.Response.Flush(); context.Response.End();
string fileName = DateTime.Now.ToString("yyyyMMddhhmmss")+".xls"; string exportContent = context.Request.Form["ExportContent"].ToString(); string typeName = context.Request.Form["TypeName"].ToString(); string ExcelFileName = System.Web.HttpContext.Current.Server.MapPath("./") + "/dataExport/" +typeName+fileName; FileStream fs = File.Create(ExcelFileName); fs.Close();
StreamWriter writer = new StreamWriter(ExcelFileName, false); writer.WriteLine(exportContent); writer.Close();
context.Response.Write("Data/dataExport/" + typeName+fileName); 然后 href 下载