`
az7772010
  • 浏览: 204029 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

datagrid 导出 excel;AJAX的页面的…

 
阅读更多

public override void VerifyRenderingInServerF<wbr>orm(Control control)<br><wbr><wbr>{<br><wbr><wbr><wbr>//base.VerifyRenderingInServerF<wbr>orm (control);<br><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr></wbr>

public static void ExportToExcelForDataGrid<wbr>(DataGrid dg,string aDate,string aFileName)<br><wbr><wbr>{<br><wbr><wbr><wbr><wbr>HttpContext.Current.Response.Clear();<br><wbr><wbr><wbr>HttpContext.Current.Response.Buffer= true;<br><wbr><wbr><wbr>HttpContext.Current.Response.Charset="GB2312";<br><wbr><wbr><wbr>HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+ HttpUtility.UrlPathEncode(aFileName) +".xls");<br><wbr><wbr><wbr>HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.GetEncoding("UTF-7");<wbr><wbr><br><wbr><wbr><wbr>HttpContext.Current.Response.ContentType = "application/ms-excel";<wbr><wbr><br><wbr><wbr><wbr><br><wbr><wbr><wbr>StringWriter oStringWriter = new System.IO.StringWriter();<br><wbr><wbr><wbr>HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);<br><wbr><wbr><wbr>dg.RenderControl(oHtmlTextWriter);<br><wbr><wbr><wbr><br><wbr><wbr><wbr>HttpContext.Current.Response.Write(oStringWriter.ToString());<br><wbr><wbr><wbr>HttpContext.Current.Response.End();<br><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

使用了AJAX的页面的GridView导出Excel,以及中文乱码问题解决<wbr><wbr></wbr></wbr>

2011-01-24 21:03:01|<wbr><wbr>分类:</wbr></wbr> .Net |<wbr><wbr>标签:</wbr></wbr> |字号<wbr></wbr>订阅

<wbr></wbr>1.首先在需要导出Excel的页面的<%@ Page Title="" Language="C#" MasterPageFile="~Master.Master" CodeBehind="List.aspx.cs" Inherits="List" enableEventValidation<wbr><wbr> ="false"%&gt;中加入enableEventValidation<wbr><wbr> ="false",这个很重要。</wbr></wbr></wbr></wbr>

2.在UpdatePannel中加入按钮的触发器<wbr><wbr></wbr></wbr>

</ContentTemplate><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;Triggers&gt;<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;asp:PostBackTrigger ControlID="export_excel" /&gt;//这里的ID指的是你单击导出Execel的控件,使这个控件回发。<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;/Triggers&gt;<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;/asp:UpdatePanel&gt;<br> 3.<wbr><wbr>在按钮单击事件中写如下函数<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr> protected void LinkButton2_Click(object sender, EventArgs e)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> GridView1.AllowPaging = false;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> string strStyle = "&lt;style&gt;td{mso-number-format:"\\@";}&lt;/style&gt;";<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.Clear();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.Buffer = true;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.Charset = "GB2312";<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls ");<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.ContentType = "application/ms-excel ";<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> StringWriter oStringWriter = new StringWriter();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> this.GridView1.RenderControl(oHtmlTextWriter);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.Write(strStyle);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.Write(oStringWriter.ToString());<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "alert", "Response.Write(oStringWriter.ToString())", true);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.Flush();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Response.End();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> GridView1.AllowPaging = true;<wbr><wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 问题:字符编码?用哪个?UTF-8、UTF-7、GB2312<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

如果表中有中文,则推荐使用GB2312,Web.config中配置全球化:

<configuration>
<wbr><wbr><wbr> &lt;system.web&gt;<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;compilation debug="true" targetFramework="4.0" /&gt;<br><wbr><wbr><wbr><wbr><wbr> &lt;globalization requestEncoding="gb2312" responseEncoding="gb2312"/&gt;//添加<br><wbr><wbr><wbr> &lt;/system.web&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

如果表中数字是以0开始的形如:08125...的话,使用string strStyle = "<style>td{mso-number-format:"\\@";}</style>";然后Response.Write(strStyle); 如上面代码中所示。

4.同样的在后台代码中写如下代码,这行代码是要确认运行时指定的服务器控件呈现,一定要添加
<wbr><wbr><wbr><wbr> public override void VerifyRenderingInServerF<wbr>orm(Control control)<br><wbr><wbr><wbr> {<br><wbr><wbr><wbr> }<br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr></wbr>

==============合计

#region qzf2011-12-29 自动创建列绑定datagrid 的合计
<wbr><wbr>public static void DataGridItemDataBoundCal<wbr>cSumForAutoColumn(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e,ArrayList alSum)<br><wbr><wbr>{<br><wbr><wbr><wbr>if (e.Item.ItemType == ListItemType.Header)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>for (int i = 0 ;i &lt;e.Item.Cells.Count;i++)<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>alSum.Add(0M);<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>else if (e.Item.ItemType == ListItemType.Item ||<br><wbr><wbr><wbr><wbr>e.Item.ItemType == ListItemType.AlternatingItem)<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>for (int i = 0 ;i &lt;e.Item.Cells.Count;i++)<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>Decimal dbl = 0M;<br><wbr><wbr><wbr><wbr><wbr>try<br><wbr><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr><wbr>dbl = Decimal.Parse(e.Item.Cells[i].Text.Trim());<br><wbr><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr><wbr><wbr>catch<br><wbr><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr><wbr><wbr>alSum[i] = Convert.ToDecimal(alSum[i]) + dbl;<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>else if(e.Item.ItemType == ListItemType.Footer )<br><wbr><wbr><wbr>{<br><wbr><br><wbr><wbr><wbr><wbr>for (int i = 0 ;i &lt;e.Item.Cells.Count;i++)<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>try<br><wbr><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr><wbr>if (Convert.ToDecimal(alSum[i])==0) continue;<br><wbr><wbr><wbr><wbr><wbr><wbr><br><wbr><wbr><wbr><wbr><wbr><wbr>e.Item.Cells[i].Text = alSum[i].ToString();<br><wbr><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr><wbr><wbr>catch<br><wbr><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr><wbr>#endregion<br><wbr>}<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics