DataGrid 导出 word 和 excel

<%@ Page language="c#" Codebehind="WebForm3.aspx.cs" AutoEventWireup="false" Inherits="Web_zwt.WebForm3" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm3</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 24px; POSITION: absolute; TOP: 128px"
runat="server"></asp:datagrid><asp:button id="Button1" style="Z-INDEX: 102; LEFT: 24px; POSITION: absolute; TOP: 24px" runat="server"
Text="导出word"></asp:button><asp:button id="Button2" style="Z-INDEX: 103; LEFT: 120px; POSITION: absolute; TOP: 24px" runat="server"
Text="导出excel"></asp:button><asp:label id="Label1" style="Z-INDEX: 104; LEFT: 24px; POSITION: absolute; TOP: 88px" runat="server">这个在我这里好用.在"引用"填加引用 -> com -> Microsoft Excel 10.0 Object Library.</asp:label></FONT></form>
</body>
</HTML>

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.IO;
using System.Windows.Forms;


namespace Web_zwt
{
/// <summary>
/// WebForm3 的摘要说明。
/// </summary>
public class WebForm3 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.Label Label1;
config con=new config();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//在"引用"填加引用 -> com -> Microsoft Excel 10.0 Object Library.

DataSet ds=con.ds("select * from tab1");
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
}

/// <summary>
/// excel
/// </summary>
/// <param name="ds">DataSet</param>
/// <param name="typeid">// typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件</param>
/// <param name="FileName">导出的名字</param>
public void CreateExcel(DataSet ds,string typeid,string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.Clear();
resp.Buffer= true;
resp.Charset="GB2312"; //设置了类型为中文防止乱码的出现
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
resp.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword

string colHeaders= "", ls_item="";
//int i=0;

//定义表对象与行对像,同时用DataSet对其值进行初始化
DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select("");
// typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件
if(typeid=="1")
{
for (int i=0;i<dt.Columns.Count-1;i++)
{
//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
colHeaders+=dt.Columns[i].Caption.ToString()+"\t";
}
colHeaders +=dt.Columns[dt.Columns.Count-1].Caption.ToString() +"\n";
//向HTTP输出流中写入取得的数据信息
resp.Write(colHeaders);
//逐行处理数据
foreach(DataRow row in myRow)
{
for (int i=0;i<dt.Columns.Count-1;i++)
{
//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
ls_item +=row[i].ToString() + "\t";
}
ls_item += row[dt.Columns.Count-1].ToString() +"\n";
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item="";
}
}
else
{
if(typeid=="2")
{
//从DataSet中直接导出XML数据并且写到HTTP输出流中
resp.Write(ds.GetXml());
}
}
//写缓冲区中的数据到HTTP头文件中
resp.End();


}
/// <summary>
/// word
/// </summary>
/// <param name="ds">DataSet</param>
/// <param name="typeid">// typeid=="1"时导出为word格式文件;typeid=="2"没有</param>
/// <param name="FileName">导出的名字</param>
public void CreateWord(DataSet ds,string typeid,string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.Clear();
resp.Buffer= true;
resp.Charset="GB2312"; //设置了类型为中文防止乱码的出现
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
resp.ContentType = "application/ms-excel";

DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select("");
string str=string.Empty;
str+="<table>";
if(typeid=="1")
{
str+="<tr>";
for (int i=0;i<dt.Columns.Count;i++)
{
str+="<td>"+dt.Columns[i].Caption.ToString()+"</td>";
}
str+="</tr>";
foreach(DataRow row in myRow)
{
str+="<tr>";
for (int i=0;i<dt.Columns.Count;i++)
{
str+="<td>"+row[i].ToString()+"</td>";
}
str+="</tr>";

}
str+="</table>";
resp.Write(str);
}
else
{
if(typeid=="2")
{
}
}
//写缓冲区中的数据到HTTP头文件中
resp.End();

}


#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Button2_Click(object sender, System.EventArgs e)
{
DataSet ds=con.ds("select * from tab1");
CreateExcel(ds,"1","aaa.xls");
}

private void Button1_Click(object sender, System.EventArgs e)
{
DataSet ds=con.ds("select * from tab1");
CreateWord(ds,"1","aaa.doc");
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值