DataGird导出EXCEL的几个方法
DataGird导出EXCEL的几个方法(WebControl)
using System;
using System.Data;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Diagnostics;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections;
namespace bookstore
{
/// <summary>
/// myExcel 的摘要说明。
/// </summary>
public class myExcel
{
public myExcel()
{
}
/// <summary>
/// 将DATAGRID导出为EXCEL文件方法一,
/// 参数是:要导出的DATAGRID的ID和要保存下来的EXCEL文件名
/// </summary>
/// <param name="myPage">page</param>
/// <param name="dg">datagrid</param>
/// <param name="name">filename</param>
private void OutExcel(Page myPage,DataGrid dg,string name)
{
HttpResponse Response;
Response=myPage.Response;
string name1="attachment;filename="+name+".xls";
dg.Visible=true;
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition",name1);
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType ="application/ms-excel";
dg.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
dg.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
/// <summary>
/// 将DATAGRID导出为EXCEL文件方法二,
/// 参数是:要导出的DATAGRID的ID和要保存下来的EXCEL文件名
/// </summary>
/// <param name="myPage">page</param>
/// <param name="ctl">datagrid</param>
/// <param name="filename">filename</param>
public void ExportToExcel(Page myPage,DataGrid ctl,string filename)
{
HttpResponse Response;
Response=myPage.Response;
bool CurrCtlVisible=ctl.Visible;
ctl.Visible=true;
Response.AppendHeader("Content-Disposition","attachment;filename="+filename+".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.ContentType = "application/ms-excel";
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);
ctl.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
ctl.Page.EnableViewState = true;
ctl.Visible=CurrCtlVisible;
}
private void DgOutExcel(Page myPage,DataGrid dg,string name)
{
HttpResponse Response;
Response=myPage.Response;
string name1="attachment;filename="+name+".xls";
dg.Visible=true;
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition",name1);
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType ="application/ms-excel";
dg.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
dg.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
#region 导出EXCEL,用DATASET
public string myExportString(DataGrid DG,DataSet ds)
{
string HTstring="<table><tr>";
string Fieldstring="";
ArrayList myAL=new ArrayList();
string sRows="<tr>";
for(int i=0;i<DG.Columns.Count;i++)
{
HTstring+="<td>"+DG.Columns[i].HeaderText+"</td>";
Fieldstring+="<td>"+((System.Web.UI.WebControls.BoundColumn)(DG.Columns[i])).DataField+"</td>";
myAL.Add(((System.Web.UI.WebControls.BoundColumn)(DG.Columns[i])).DataField);
}
for(int k=0;k<ds.Tables[0].Rows.Count;k++)
{
foreach(string field in myAL)
{
sRows+= "<td>"+ds.Tables[0].Rows[k][field]+"</td>";
}
sRows+="</tr>";
}
HTstring+="</tr>"+sRows+"</table>";
return HTstring;
}
public void SaveToExcel(Page myPage, string myExportString,string myFileName)
{
HttpResponse resp;
resp=myPage.Response;
resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition","attachment;filename="+myFileName+".xls");
resp.ContentType="application/ms-excel";
resp.Write(myExportString);
resp.End();
//resp.Clear();
//resp.Close();
}
public void Export(DataGrid myDG,DataTable dt,HttpResponse response)
{
// clean up response object
response.Clear();
response.Charset = "";
response.Charset = "UTF-8";
// response.ContentEncoding = System.Text.Encoding.Default;
response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
// set response object's mime type
// response.ContentType = "application/vnd.ms-excel";
response.AppendHeader("Content-Disposition","attachment;filename=mytest.xls");
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
DataGrid dg = new DataGrid();
dg.AllowPaging = false;
dg.AllowSorting = false;
ArrayList myAL=new ArrayList();
for(int i=0;i<myDG.Columns.Count;i++)
{
// dg.Columns.AddAt(i,myDG.Columns[i]);
// dg.Columns[i].HeaderText=myDG.Columns[i].HeaderText;
myAL.Add(((System.Web.UI.WebControls.BoundColumn)(myDG.Columns[i])).DataField);
for(int k=0;k<dt.Columns.Count;k++)
{
foreach(string field in myAL)
{
if(dt.Columns[i].ColumnName==field)
{
dt.Columns[i].ColumnName=myDG.Columns[i].HeaderText;
}
}
}
}
dg.DataSource = dt;
dg.ShowHeader = true;
dg.HeaderStyle.BackColor = System.Drawing.Color.DarkGray;
dg.HeaderStyle.ForeColor = System.Drawing.Color.White;
dg.HeaderStyle.Font.Bold = true;
dg.AlternatingItemStyle.BackColor = System.Drawing.Color.LightGray;
dg.DataBind();
dg.RenderControl(htw);
response.Write(sw.ToString());
response.End();
}
#endregion
}
}
最新文章
- vs2010中的MSBuild输出warning MSB8012问题
- popupwindow与软键盘的问题
- js:数据结构笔记2---列表
- 绑定repeater时三目运算加特殊结果处理
- POJ 2001:Shortest Prefixes
- 数据挖掘:Weka代码学习
- Hibernate一级缓存、二级缓存
- NopCommerce架构分析(转载)
- [Bzoj 2547] [Ctsc2002] 玩具兵
- windows上安装nodejs,升级npm,安装webpack指南
- 文本离散表示(一):词袋模型(bag of words)
- awk --- 常用技巧
- abtestingGateway错误集锦
- 【学习】DataFrame&;Series类【pandas】
- 100-days: fourteen
- 理解 Python 的执行方式,与字节码 bytecode 玩耍 (上)
- ceph存储osd启动异常处理和正常启停操作
- BZOJ 3876 支线剧情 | 有下界费用流
- 如何从dll文件导出对应的lib文件?
- Android开发学习笔记-splash画面的显示
热门文章
- spring 与 CXF 整合 webservice 出现error “Unable to locate Spring NamespaceHandler for XML schema namespace” 总结
- java.util.concurrent包API学习笔记
- 能量项链//区间DP
- lintcode:子数组之和为0
- lintcode :Reverse Words in a String 翻转字符串
- 【多媒体封装格式详解】---MKV
- Hibernate逍遥游记-第3章对象-关系映射基础-access=";field";、dynamic-insert、dynamic-update、formula、update=false
- create user &#39;root&#39;@&#39;localhost&#39; identified by 。。。
- 6、JPA_映射单向多对一的关联关系(n的一方有1的引用,1的一方没有n的集合属性)
- MyEclipse 从数据库反向生成Hibernate实体类