欢迎光临
我们一直在努力

ASP.NET导出数据到Excel-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

  
该方法只是把asp.net页面保存成html页面只是把后缀改为xlc不过excel可以读取,接下连我看看还有别的方式能导出数据,并利用模版生成。
下面是代码
县新建一个asp.ne的tweb应用程序把代码粘贴进去就好了
html页面代码
<%@ page language=”c#” codebehind=”outexcel.aspx.cs” autoeventwireup=”false” inherits=”emeng.exam.outputexcel” %>
<!doctype html public “-//w3c//dtd html 4.0 transitional//en” >
<html>
 <head>
  <title>outputexcel</title>
 </head>
 <body>
  <form id=”form1″ method=”post” runat=”server”>
   <asp:datagrid id=”datagrid1″ runat=”server”>
    <columns>
     <asp:boundcolumn></asp:boundcolumn>
    </columns>
   </asp:datagrid>
   <p>
    <asp:label id=”label1″ runat=”server”>文件名:</asp:label>
    <asp:textbox id=”textbox1″ runat=”server”></asp:textbox>
    <asp:button id=”button1″ runat=”server” text=”输出到excel”></asp:button></p>
  </form>
 </body>
</html>
接下来是cs页面里的代码
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
using system.data.sqlclient;
namespace emeng.exam
{
 /// <summary>
 /// outputexcel 的摘要说明。
 /// </summary>
 public class outputexcel : system.web.ui.page
 {
  protected system.web.ui.webcontrols.button button1;
  protected system.web.ui.webcontrols.datagrid datagrid1;
  protected system.web.ui.webcontrols.textbox textbox1;
  protected system.web.ui.webcontrols.label label1;
  private dataset myds =new dataset();
  private void page_load(object sender, system.eventargs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!page.ispostback)
   {
    data_load();//调用方法填充表格
   }
   
  }
  /// <summary>
  /// 创建数据源
  /// </summary>
  /// <returns>dataview</returns>
  private void data_load()
  {
   //数据库连接字符串catalog为指定的数据库名称,datasource为要连接的sql服务器名称
   string myconn =”user id=sa;password=sa;initial catalog=test;data source=zxb;connect timeout=20″;
   //查询字符串
   string mysqlstr=”select * from fy”;
   //连接数据库操作
   sqlconnection myconnection = new sqlconnection(myconn);
   //执行sql语句操作
   sqldataadapter mydataadapter = new sqldataadapter(mysqlstr,myconnection);
   //打开数据库
   myconnection.open();
   //向dataset填充数据,填充数据库服务器中test库中的fy表
   mydataadapter.fill(myds,”fy”);
   //向dastagrid填充数据
   datagrid1.datasource=myds;
   datagrid1.databind();
  }
  /// <summary>
  /// 输出到excel
  /// </summary>
  /// <param name=”sender”></param>
  /// <param name=”e”></param>
  private void button1_click(object sender, system.eventargs e)
  {
   if(textbox1.text==””)
   {
    response.write(“<script language=javascript>”);
    response.write(“window.alert(’请输入文件名’);”);
    response.write(“</script>”);
   }
   else
   {
    response.clear(); 
    response.buffer= true; 
    response.charset=”gb2312″;  //设置了类型为中文防止乱码的出现  
    response.appendheader(“content-disposition”,”attachment;filename=”+textbox1.text+”.xls”); //定义输出文件和文件名
    response.contentencoding=system.text.encoding.getencoding(“gb2312”);//设置输出流为简体中文
    response.contenttype = “application/ms-excel”;//设置输出文件类型为excel文件。 
    this.enableviewstate = false;    
    system.globalization.cultureinfo mycitrad = new system.globalization.cultureinfo(“zh-cn”,true);
    system.io.stringwriter ostringwriter = new system.io.stringwriter(mycitrad); 
    system.web.ui.htmltextwriter ohtmltextwriter = new system.web.ui.htmltextwriter(ostringwriter);
    this.datagrid1.rendercontrol(ohtmltextwriter); 
    response.write(ostringwriter.tostring());
   }
  }
  #region web 窗体设计器生成的代码
  override protected void oninit(eventargs e)
  {
   //
   // codegen: 该调用是 asp.net web 窗体设计器所必需的。
   //
   initializecomponent();
   base.oninit(e);
  }
  /// <summary>
  /// 设计器支持所需的方法 – 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void initializecomponent()
  {    
   this.datagrid1.itemdatabound += new system.web.ui.webcontrols.datagriditemeventhandler(this.datagrid1_itemdatabound);
   this.button1.click += new system.eventhandler(this.button1_click);
   this.load += new system.eventhandler(this.page_load);
  }
  #endregion
  private void datagrid1_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
  {
   if(e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem)
   {
    e.item.cells[0].attributes.add(“style”,”vnd.ms-excel.numberformat:@”);
    e.item.cells[3].attributes.add(“style”,”vnd.ms-excel.numberformat:¥#,###.00″);
   }
  }
 }
}
还在继续研究别的方式

<%@ page language=”c#” codebehind=”outexcel.aspx.cs” autoeventwireup=”false” inherits=”emeng.exam.outputexcel” %>
<!doctype html public “-//w3c//dtd html 4.0 transitional//en” >
<html>
 <head>
  <title>outputexcel</title>
 </head>
 <body>
  <form id=”form1″ method=”post” runat=”server”>
   <asp:datagrid id=”datagrid1″ runat=”server”>
    <columns>
     <asp:boundcolumn></asp:boundcolumn>
    </columns>
   </asp:datagrid>
   <p>
    <asp:label id=”label1″ runat=”server”>文件名:</asp:label>
    <asp:textbox id=”textbox1″ runat=”server”></asp:textbox>
    <asp:button id=”button1″ runat=”server” text=”输出到excel”></asp:button></p>
  </form>
 </body>
</html>
接下来是cs页面里的代码
using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
using system.data.sqlclient;
namespace emeng.exam
{
 /// <summary>
 /// outputexcel 的摘要说明。
 /// </summary>
 public class outputexcel : system.web.ui.page
 {
  protected system.web.ui.webcontrols.button button1;
  protected system.web.ui.webcontrols.datagrid datagrid1;
  protected system.web.ui.webcontrols.textbox textbox1;
  protected system.web.ui.webcontrols.label label1;
  private dataset myds =new dataset();
  private void page_load(object sender, system.eventargs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!page.ispostback)
   {
    data_load();//调用方法填充表格
   }
   
  }
  /// <summary>
  /// 创建数据源
  /// </summary>
  /// <returns>dataview</returns>
  private void data_load()
  {
   //数据库连接字符串catalog为指定的数据库名称,datasource为要连接的sql服务器名称
   string myconn =”user id=sa;password=sa;initial catalog=test;data source=zxb;connect timeout=20″;
   //查询字符串
   string mysqlstr=”select * from fy”;
   //连接数据库操作
   sqlconnection myconnection = new sqlconnection(myconn);
   //执行sql语句操作
   sqldataadapter mydataadapter = new sqldataadapter(mysqlstr,myconnection);
   //打开数据库
   myconnection.open();
   //向dataset填充数据,填充数据库服务器中test库中的fy表
   mydataadapter.fill(myds,”fy”);
   //向dastagrid填充数据
   datagrid1.datasource=myds;
   datagrid1.databind();
  }
  /// <summary>
  /// 输出到excel
  /// </summary>
  /// <param name=”sender”></param>
  /// <param name=”e”></param>
  private void button1_click(object sender, system.eventargs e)
  {
   if(textbox1.text==””)
   {
    response.write(“<script language=javascript>”);
    response.write(“window.alert(’请输入文件名’);”);
    response.write(“</script>”);
   }
   else
   {
    response.clear(); 
    response.buffer= true; 
    response.charset=”gb2312″;  //设置了类型为中文防止乱码的出现  
    response.appendheader(“content-disposition”,”attachment;filename=”+textbox1.text+”.xls”); //定义输出文件和文件名
    response.contentencoding=system.text.encoding.getencoding(“gb2312”);//设置输出流为简体中文
    response.contenttype = “application/ms-excel”;//设置输出文件类型为excel文件。 
    this.enableviewstate = false;    
    system.globalization.cultureinfo mycitrad = new system.globalization.cultureinfo(“zh-cn”,true);
    system.io.stringwriter ostringwriter = new system.io.stringwriter(mycitrad); 
    system.web.ui.htmltextwriter ohtmltextwriter = new system.web.ui.htmltextwriter(ostringwriter);
    this.datagrid1.rendercontrol(ohtmltextwriter); 
    response.write(ostringwriter.tostring());
   }
  }
  #region web 窗体设计器生成的代码
  override protected void oninit(eventargs e)
  {
   //
   // codegen: 该调用是 asp.net web 窗体设计器所必需的。
   //
   initializecomponent();
   base.oninit(e);
  }
  /// <summary>
  /// 设计器支持所需的方法 – 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void initializecomponent()
  {    
   this.datagrid1.itemdatabound += new system.web.ui.webcontrols.datagriditemeventhandler(this.datagrid1_itemdatabound);
   this.button1.click += new system.eventhandler(this.button1_click);
   this.load += new system.eventhandler(this.page_load);
  }
  #endregion
  private void datagrid1_itemdatabound(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
  {
   if(e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem)
   {
    e.item.cells[0].attributes.add(“style”,”vnd.ms-excel.numberformat:@”);
    e.item.cells[3].attributes.add(“style”,”vnd.ms-excel.numberformat:¥#,###.00″);
   }
  }
 }
}
还在继续研究别的方式

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP.NET导出数据到Excel-.NET教程,Asp.Net开发
分享到: 更多 (0)