欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何将数据绑到gridview然后导成excel

程序员文章站 2024-02-27 12:01:45
复制代码 代码如下: using system; using system.collections.generic; using system.linq; using sy...
复制代码 代码如下:

using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.data .sqlclient ;
using system.data ;

public partial class _default : system.web.ui.page
{
protected void page_load(object sender, eventargs e)
{
string sqlconn = "server=.; database=db; integrated security=sspi ";
string sql = "select top 10 * from table";

sqlconnection myconnection = new sqlconnection(sqlconn);// 创建数据库连接实例

myconnection.open(); //打开数据库

sqlcommand mycommand = new sqlcommand(sql, myconnection);//创建sql的实例,执行一个sql


sqldataadapter adapter = new sqldataadapter();//创建一个sql数据适配器
adapter.selectcommand = mycommand;//属性设置为 从数据源中检索记录


dataset myds = new dataset(); //创建数据集实例
adapter.fill(myds);//填充数据集

gridview1.datasource = myds.tables[0].defaultview;//
gridview1.databind();

// datatoexcel("测试的cxcel", gridview1);
myconnection.close();//关闭数据库连接
}
public void datatoexcel(string filename, gridview mygridview)
{
//定义文档类型、字符编码
response.clear();
response.buffer = false;
//response.charset = "utf-8";
response.charset = "gb2312";
//下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开
//filename=fileflow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc || .xls || .txt ||.htm
response.appendheader("content-disposition", "attachment;filename=" + system.web.httputility.urlencode(filename, system.text.encoding.utf8) + ".xls");
response.contentencoding = system.text.encoding.getencoding("utf-8");
//response.contentencoding = system.text.encoding.getencoding("gb2312");
//response.contenttype指定文件类型 可以为application/ms-excel || application/ms-word || application/ms-txt || application/ms-html || 或其他浏览器可直接支持文档
response.contenttype = "application/ms-excel";
this.enableviewstate = false;
//system.globalization.cultureinfo mycitrad = new system.globalization.cultureinfo("zh-cn", true);
//定义一个输入流
system.io.stringwriter ostringwriter = new system.io.stringwriter();
system.web.ui.htmltextwriter ohtmltextwriter = new system.web.ui.htmltextwriter(ostringwriter);
//将目标数据绑定到输入流输出
mygridview.rendercontrol(ohtmltextwriter);
response.write(ostringwriter.tostring());
response.end();
}

//下面这个空语句一定要加,否则会出现“必须放在具有 runat=server 的窗体标记内。”的错误
public override void verifyrenderinginserverform(control control)
{
}

//点击事件,生成excel
protected void button1_click(object sender, eventargs e)
{
datatoexcel("测试的cxcel", gridview1);
}
}