当前位置: 代码迷 >> ASP.NET >> 导出Excel有关问题,流跟json数据的转换有关问题
  详细解决方案

导出Excel有关问题,流跟json数据的转换有关问题

热度:7856   发布时间:2013-02-25 00:00:00.0
导出Excel问题,流跟json数据的转换问题?
前台:<input id="InsertToExcel_btn" type="button" value="导出Excel" class="btn"/>

 
JScript code
 //导出Excel功能        function inserToExcelBtnClick() {            var sendID = "";            var url = "ToExcel.action";            for (var i = 0; i < count; i++) {                sendID = sendID + ";" + treeNodeID[i];            }            sendID = sendID.slice(1);            alert(sendID);            $.post(url,        { "type": mappingType, "list": sendID },        function() { },        "json");        };


后台ToExcel的主要代码:
 
C# code
 MemoryStream ms = NPOIHelper.ToExcel(RequirementDetailForXls) as MemoryStream;                context.Response.AddHeader("Content-Disposition", ("attachment;filename=" + filename));                context.Response.Charset = "UTF-8";                context.Response.ContentType = "application/json";                context.Response.BinaryWrite(ms.ToArray());                ms.Close();                ms.Dispose();


运行结果:
浏览器没有出现Excel的下载对话框,在firebug的里面看Response,是一堆乱码。

PS:菜鸟,初学,可能连问题都问得不是很清楚,还请大神们见谅,不吝赐教,谢谢!

------解决方案--------------------------------------------------------
异步传递文件,很抱歉,这个功能 可能要等html5了

如果你只是不想刷新页面,
你可以这样


JScript code
  $.post(url,        { "type": mappingType, "list": sendID },        function() { },        "json");
------解决方案--------------------------------------------------------
src长度限制2046字节,个人测试2020长度极限(IE)

HTML5貌似增加了新的通信对象,支持服务器 推,目前没有研究,你可以看看
  相关解决方案