求高手告知,MVC往页面输出流的时候,使用IE浏览器,打开浏览器下载器后,会导致浏览器自动关闭

问题描述

大神,现象如标题一样,就是MVC在往页面输出EXCEL的输出流的时候,页面自己就关闭了,只剩一个下载页面。这个该怎么解决啊~~代码是这样的导出帮助类如下:///<summary>///EXCEL导出帮助类///</summary>///<typeparamname="T">泛型类型,制定实体</typeparam>publicclassExcelHelper<T>{publicstaticMemoryStreamListToExcel<T>(IList<T>list,stringtitleName,stringfileName,Dictionary<string,string>propertyName){//创建流对象using(MemoryStreamms=newMemoryStream()){//将参数写入到一个临时集合中List<string>propertyNameList=newList<string>();if(propertyName!=null)propertyNameList.AddRange(propertyName.Keys);//床NOPI的相关对象IWorkbookworkbook=newHSSFWorkbook();ISheetsheet=workbook.CreateSheet();IRowheaderRow=sheet.CreateRow(0);#region样式设定//--------------表头标题及文字显示样式----------------//ICellcell=headerRow.CreateCell(0);cell.SetCellValue(titleName);ICellStylestyle=workbook.CreateCellStyle();style.Alignment=HorizontalAlignment.Center;IFontfont=workbook.CreateFont();font.FontHeight=20*20;style.SetFont(font);cell.CellStyle=style;//--------------列名样式----------------//IFontfont2=workbook.CreateFont();ICellStylestyle1=workbook.CreateCellStyle();font2.FontName="Arial";font2.FontHeightInPoints=12;font2.Color=HSSFColor.Red.Index;style1.SetFont(font2);#endregionif(list.Count>0){//通过反射得到对象的属性集合PropertyInfo[]propertys=list[0].GetType().GetProperties();//定义储存26个字母的数组string[]LetterStr={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};intindex=0;//读取26个字母位置索引的变量intcellIndex=0;//储存输入数据列的索引IRowdataRow1=sheet.CreateRow(1);//遍历属性集合生成excel的表头标题for(inti=0;i<propertys.Count();i++){//判断此属性是否是用户定义属性if(propertyNameList.Count==0){dataRow1.CreateCell(i).SetCellValue(propertys[i].Name);}else{if(propertyNameList.Contains(propertys[i].Name)){dataRow1.CreateCell(cellIndex).SetCellValue(propertyName[propertys[i].Name]);index++;cellIndex++;}}}//设置合并单元格sheet.AddMergedRegion(newCellRangeAddress(0,0,0,(index==0?1:index-1)));//设置筛选框范围CellRangeAddressc=CellRangeAddress.ValueOf("A2:"+(index==0?"A2":LetterStr[index-1])+"2");sheet.SetAutoFilter(c);introwIndex=2;//遍历集合生成excel的行集数据for(inti=0;i<list.Count;i++){IRowdataRow=sheet.CreateRow(rowIndex);intcellIndex2=0;for(intj=0;j<propertys.Count();j++){if(propertyNameList.Count==0){objectobj=propertys[j].GetValue(list[i],null);dataRow.CreateCell(j).SetCellValue(obj.ToString());}else{if(propertyNameList.Contains(propertys[j].Name)){objectobj=propertys[j].GetValue(list[i],null);dataRow.CreateCell(cellIndex2).SetCellValue(obj.ToString());cellIndex2++;}}}rowIndex++;}}workbook.Write(ms);ms.Flush();ms.Position=0;returnms;}}}调用如下(直接在Index里输出了):publicActionResultIndex(){List<User>list=newList<User>();for(inti=0;i<10;i++){Useru=newUser();u.Age=i.ToString();u.IsLike="是";u.Name="测试"+i;u.School="学校"+i;u.Sex="男";list.Add(u);}Dictionary<string,string>dic=newDictionary<string,string>();//dic.Add("Name","名字");dic.Add("Sex","性别");//dic.Add("Age","年龄");dic.Add("School","学校");//dic.Add("IsLike","是否喜欢他");string[]propertyName=newstring[]{"Name","Age","School"};MemoryStreamms=ExcelHelper<User>.ListToExcel(list,"ThisIsMyTestEXCEL","Result",dic);Response.ContentType="application/vnd.ms-excel;charset=UTF-8";HttpContext.Current.Response.AddHeader("Content-Disposition",string.Format("attachment;filename={0}.xls","Result"));HttpContext.Current.Response.Clear();Response.BinaryWrite(ms.GetBuffer());HttpContext.Current.Response.End();returnView();

解决方案

时间: 2025-01-21 15:36:20

求高手告知,MVC往页面输出流的时候,使用IE浏览器,打开浏览器下载器后,会导致浏览器自动关闭的相关文章

tomcat-这是什么情况,我晕,求高手瞄一眼。空白页啊

问题描述 这是什么情况,我晕,求高手瞄一眼.空白页啊 brow得到空白页,无报错(控制台和浏览器),但能请求到自己返回数据.web-app下无项目配置为tomcat installion,用的是myeclipse.tomcat日子用的是get请求 解决方案 传个brower看看 解决方案二:

多线程-在编写一个从谷歌下载影像图的程序,下载过程中,网速时快时慢,求高手指点

问题描述 在编写一个从谷歌下载影像图的程序,下载过程中,网速时快时慢,求高手指点 这个程序开了多线程,一张图片一张图片的下载,如果,下载失败,在While循环里,Sleep一下,直到下载成功,才退出循环,这样确保每一张图片下载成功,求高手指点啊,是不是线程开得太多了,有一百多个,还是while循环处理的问题 解决方案 100多线程没有什么意义,10个线程基本上就够了. sleep会导致当前线程休眠,看你是不是用错了. 解决方案二: 线程内处理代码如下: bool bDownLoad = CTil

下载完成后页面不自动关闭的方法_JSP编程

下载完成后页面不自动关闭的问题! 以下代码能够实现下载了,但是当下载完成后,窗口不自动关闭,请问是什么原因? download.jsp 复制代码 代码如下: <% // 得到文件名字和路径 String filename = request.getParameter("filename"); String filepath = "c:\\"; // 设置响应头和下载保存的文件名 response.setContentType("APPLICATION

下载完成后页面自动关闭

下载完成后页面不自动关闭的问题! 以下代码能够实现下载了,但是当下载完成后,窗口不自动关闭,请问是什么原因? download.jsp <%   // 得到文件名字和路径   String filename = request.getParameter("filename");   String filepath = "c:\\";      // 设置响应头和下载保存的文件名   response.setContentType("APPLICATI

ssh-SSH框架下 jsp页面提交file类型input404 求高手指导

问题描述 SSH框架下 jsp页面提交file类型input404 求高手指导 从页面进入action,名称路径全对,form提交的时候如果file类型的input标 签不选择文件可以找到并进入后台,如果选择文件了则是404.这是什么原因? 求大神给予解答!!!谢谢了!!! 解决方案 这个最好分开做处理,写程序之前先想好流程,别急着写代码 解决方案二: 分析下你的action定义的请求是get的还是post. 最好贴上具体代码!

jquery-iframe 父页面提交子页面表单..求高手

问题描述 iframe 父页面提交子页面表单..求高手 父页面有个提交按钮,点击提交按钮后把子页面的表单用Ajax提交

java-openmeetings无法进入登录页面 页面报错Internal error 求高手解答

问题描述 openmeetings无法进入登录页面 页面报错Internal error 求高手解答 用的是apache-openmeetings-3.0.7 连接的是oracle 安装完成后访问一切正常,但是关掉red5 再次启动后 页面无法进入 页面报错:Internal error 后台报错信息为: ERROR 12-30 14:22:42.142 DefaultExceptionMapper.java 255077 170 org.apache.wicke t.DefaultExcept

急求高手知道《类似动态新闻页面》

问题描述 如何使从数据库中读出的信息动态的显示在页面上(当页面进入时),我在做一个微博系统,动态在首页显示博主发表的微博,在网上也搜过,但是还是整不出来,急求高手知道,能附上核心代码更好. 解决方案 解决方案二: 在页面加载事件里面写查询按时间排序.解决方案三: 基本上任何培养代码工人的教程都教这个.请耐心花一个月时间从头学起.如果学不会如何把信息在页面上显示记的技术,那么做编程实在是难于登天.解决方案四: SqlConnectionm_con=newSqlConnection(ConnStr)

List里存储的数据库数据怎么到页面上显示都是0呢?求高手解答

问题描述 我的UserAction里的代码如下:privateList<UserBean>findAllUser(){log.info("getalluserinf...");List<UserBean>list=newArrayList<UserBean>();UserBeanuser;Connectionconn=getConn();Stringsql="SELECT*FROMusersORDERBYno";PreparedS