将datagrid控件内容输出到excel文件
一个将datagrid控件内容输出到excel文件的demo.
生成excel文件
public void settoexcel()
{
// response.clear();
// response.buffer= true;
// response.charset="utf-8";
if (eformsn.text=="")
{
datagrid1.visible=false;
label1.text="要汇入excel,请先输入申请单号!";
label1.visible=true;
}
else
{
dl.datasource=db("query", "select * from msi_eol_list_line where eformsn="+eformsn.text+" order by eformsn").tables[0].defaultview;
dl.databind();
//下面这行很重要,attachment 参数表示作为附件下载,您可以改成online在线打开
//filename=fileflow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc .xls .txt .htm
response.appendheader("content-disposition","attachment;filename=eol_"+eformsn.text+".xls");
response.contentencoding=system.text.encoding.getencoding("utf-8");
//response.contenttype指定文件类型 可以为application/ms-excel,application/ms-word ,application/ms-txt,application/ms-html或其他浏览器可直接支持文档
response.contenttype = "application/ms-excel";
dl.enableviewstate = false;
system.io.stringwriter ostringwriter = new system.io.stringwriter();
system.web.ui.htmltextwriter ohtmltextwriter = new system.web.ui.htmltextwriter(ostringwriter);
//将目标数据绑定到输入流输出
//this 表示输出本页,你也可以绑定datagrid,或其他支持obj.rendercontrol()属性的控件
dl.rendercontrol(ohtmltextwriter);
//this.databind.rendercontrol(ohtmltextwriter);
response.write(ostringwriter.tostring());
response.end();
}
}