发布网友 发布时间:2022-04-20 21:16
共1个回答
热心网友 时间:2023-09-15 05:24
其实 利用ASP NET输出指定内容的WORD EXCEL TXT HTM等类型的文档很容易的 主要分为三步来完成
一 定义文档类型 字符编码
Response Clear(); Response Buffer= true;
Response Charset= utf ;
//下面这行很重要 attachment 参数表示作为附件下载 您可以改成 online在线打开
//filename=FileFlow xls 指定输出文件的名称 注意其扩展名和指定文件类型相符 可以为 doc xls txt
Response AppendHeader( Content Disposition attachment;filename=FileFlow xls );
Response ContentEncoding=System Text Encoding GetEncoding( utf );
//Response ContentType指定文件类型 可以为application/ms excel application/ms word application/ms txt application/ms 或其他浏览器可直接支持文档
Response ContentType = application/ms excel ;
this EnableViewState = false;
二 定义一个输入流
System IO StringWriter oStringWriter = new System IO StringWriter(); System Web UI HtmlTextWriter oHtmlTextWriter = new System Web UI HtmlTextWriter(oStringWriter);三 将目标数据绑定到输入流输出
this RenderControl(oHtmlTextWriter); //this 表示输出本页 你也可以绑定datagrid 或其他支持obj RenderControl()属性的控件 Response Write(oStringWriter ToString());
Response End();
四 这时如果发生 只能在执行 Render() 的过程中调用 RegisterForEventValidation 的错误提示
有两种方法可以解决
修改web config(不推荐)<pages enableEventValidation = false ></pages> 直接在导出Execl的页面修改
lishixin/Article/program/net/201311/144