关于NPOI导出EXCEL的灵异问题.求各位大大帮忙解决下.

叫我猫爷_ 2017-11-02 06:54:34
项目原来有一个页面是可以导出列表到excel的,就在后台构建好集合,然后调用下面的方法之后就可以导出了(填充数据的代码就不贴了),可以导出的意思是浏览器自动下载那个excel..(360会弹个框出来选择路径,谷歌自动下载到默认的路径)
   
NpoiExcelHelper nopi = new NpoiExcelHelper();
DataTable table = nopi.ListToDataTable(list); --list是IList类型
nopi.Write(table, "", "sheetName", strFieldsName, strFieldsTitle, --strFieldsName是list的对象名,strFieldsTitle是表头
tj, '',"导出.xls",maintainStaffNameDic); --tj是用来sheet2的统计信息的,maintainStaffNameDic是用来sheet2的信息之一.



public void Write(DataTable table, string headerText, string sheetName,
string[] columnName, string[] columnTitle, MalfunctionHandleTJ tj,
string headerText1, string fileName, Dictionary<string, int> maintainStaffNameDic)
{
HttpContext context = HttpContext.Current;
context.Response.ContentType = "application/vnd.ms-excel";
context.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", HttpUtility.UrlEncode(fileName, Encoding.UTF8)));
context.Response.Clear();
HSSFWorkbook hssfworkbook = GenerateData(table, headerText, sheetName,
columnName, columnTitle, tj, headerText1, maintainStaffNameDic);
context.Response.BinaryWrite(WriteToStream(hssfworkbook).GetBuffer());
context.Response.End();
}


现在我有另外一个页面也需要导出列表到excel,同样也是调用对应的方法. 但是问题来了,执行完之后,没报错,数据也填充好了,表头和list对象名,list的数据内容都没问题的..
但是却导不出excel(360没弹出框,谷歌也没有自动下载).

NpoiExcelHelper nopi = new NpoiExcelHelper();
DataTable table = nopi.ListToDataTable(list);
nopi.Write(table, "", "sheetName", strFieldsName, strFieldsTitle, "导出.xls");


public void Write(DataTable table, string headerText, string sheetName,
string[] columnName, string[] columnTitle, string fileName)
{
HttpContext context = HttpContext.Current;
context.Response.ContentType = "application/vnd.ms-excel";
context.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", HttpUtility.UrlEncode(fileName, Encoding.UTF8)));
context.Response.Clear();
HSSFWorkbook hssfworkbook = null;
hssfworkbook = GenerateData(table, headerText, sheetName,
columnName, columnTitle);
context.Response.BinaryWrite(WriteToStream(hssfworkbook).GetBuffer());
context.Response.End();
}



两份填充数据的代码都是一样的,调用的方法也是一样的.
...全文
410 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
叫我猫爷_ 2017-11-08
  • 打赏
  • 举报
回复
引用 6 楼 cyg17173 的回复:
页面有特殊字符。
导出的内容有特殊字符?
cyg17173 2017-11-07
  • 打赏
  • 举报
回复
页面有特殊字符。
好大一地嗯 2017-11-07
  • 打赏
  • 举报
回复
1、这个不能在异步中ajax请求 2、直接POST或GET请求这个页面下载文件 3、debug确定这个代码被执行了
吉普赛的歌 2017-11-05
  • 打赏
  • 举报
回复
直接导出为一个真实的文件, 给人家一个 url 就可以了, 不要 reponse 搞来搞去容易出问题。
  • 打赏
  • 举报
回复
你应该首先进行 http 调试,看看到底是不是要下载。
叫我猫爷_ 2017-11-05
  • 打赏
  • 举报
回复
自顶~~~~~~~~~~~~~~~~~~~
叫我猫爷_ 2017-11-04
  • 打赏
  • 举报
回复
顶~~~~~~~~~~
叫我猫爷_ 2017-11-02
  • 打赏
  • 举报
回复
自顶~~~~~~~~~~~~~~~~~~~
下载代码方式:https://pan.quark.cn/s/ebe6626778c6 笔记本独显利用不足的应对策略 笔记本电脑独立显卡(GPU)利用不足的情况是一种普遍存在的现象,对笔记本的整体表现及用户操作感受造成影响。在本文中,我们将阐述两种策略来提升笔记本独显的利用效率。 独立显卡使用效率的定义 独立显卡在笔记本电脑中承担图形处理任务,其使用效率指的是该硬件组件在实际操作中的活跃程度。当独立显卡的活跃度较低时,笔记本的表现力会受到影响,进而对用户的使用体验产生负面影响。 提升策略一:调整系统设置以优化浏览器对 GPU 的调用 为了增强笔记本独显的使用效率,我们可以通过调整系统设置来优化浏览器对 GPU 的调用。具体操作步骤如下: 1. 评估性能:首先需要评估笔记本的性能状态,以便掌握独立显卡当前的利用情况。 2. 进入搜索功能:通过按住 Win+S 键激活搜索界面,并输入“图形设置”进行查询。 3. 启用硬件加速:在搜索结果中定位并启用硬件加速 GPU 的选项。 4. 添加指定应用:将需要借助独立显卡运行的应用程序,如浏览器等,添加到列表中。 5. 调整图形性能:在相关浏览器中输入网址 https://cznull.github.io/vsbm,以监测 GPU 的使用状态。 提升策略二:通过独立显卡管理界面进行配置 另一种策略是通过独立显卡的管理界面进行配置。具体步骤如下: 1. 桌面操作:在桌面上进行右键点击,选择“NVIDIA 控制面板”选项。 2. 管理三维设置:在 NVIDIA 控制面板中,点击左侧菜单的“管理 3D 设置”。 3. 选择高性能模式:在全局设置部分,将首选图形处理器调整为“高性能 NVIDIA 处理”。 4. 应用特定设置:选择“...

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧