62,041
社区成员
发帖
与我相关
我的任务
分享
private void DataTable2Excel(System.Data.DataTable dtData, String FileName)
{
//当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
//IO用于导出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null;
if (dtData != null)
{
//设置编码和附件格式
//System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)作用是方式中文文件名乱码
curContext.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
curContext.Response.ContentType = "application nd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "GB2312";
//导出Excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
//为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的GridView
gvExport.DataSource = dtData.DefaultView;
gvExport.AllowPaging = false;
gvExport.DataBind();
//下载到客户端
gvExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}
public override void VerifyRenderingInServerForm(Control control)
{
}
public override void VerifyRenderingInServerForm(Control control)
{
}
private void ExportToExcel(DataTable DT)
{
StringWriter sw = new StringWriter();
StringBuilder sb = new StringBuilder();
foreach (DataColumn DC in DT.Columns)
{
if (!String.IsNullOrEmpty(DC.Caption))
{
sb.Append("\t" + DC.Caption);
}
}
if (sb.Length > 0)
{
sw.WriteLine(sb.ToString().Substring(1));
foreach (DataRow Dr in DT.Rows)
{
sb = new StringBuilder();
foreach (DataColumn DC in DT.Columns)
{
if (!String.IsNullOrEmpty(DC.Caption))
{
sb.Append("\t" + Dr[DC].ToString());
}
}
sw.WriteLine(sb.ToString().Substring(1));
}
}
//sw.Close();
//DT.Clear();
//DT.Dispose();
Response.AddHeader("Content-Disposition", "attachment; filename=report.xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
}
protected void Button1_Click1(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(Request.QueryString["id"]))
{
ExportToExcel(ToOutExcel(null));
//ExcelHelper eh = new ExcelHelper();
//eh.DataTableToOfficeExcel(ToOutExcel(null), 1,1);
}
else
{
string id = Request.QueryString["id"].ToString();
ExportToExcel(ToOutExcel(id));
}
}
我什么都没做就导出
System.Web.UI.WebControls.GridView dataGrid = new System.Web.UI.WebControls.GridView();
dataGrid.DataSource = dt.DefaultView;
dataGrid.AllowPaging = false;
dataGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
dataGrid.HeaderStyle.Font.Bold = true;
dataGrid.DataBind();
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("人员出现场统计", System.Text.Encoding.UTF8) + ".xls");
HttpContext.Current.Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
HttpContext.Current.Response.ContentType = "application/ms-excel";
dataGrid.EnableViewState = false;
dataGrid.AutoGenerateColumns = true;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
dataGrid.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();